r在一个循环中

r在一个循环中,r,shiny,R,Shiny,我想将几个表作为一个输出输出。如果我使用循环将它们放在一个列表中,那么所有输出都等于最后一个。 例如: 库(闪亮) ui对于这样的用例,我通常使用lappy。这样,您就不会遇到惰性评估的问题 library(shiny) ui <- fluidPage( mainPanel( uiOutput("tables") ) ) server <- function(input, output) { output$tables <- renderUI({

我想将几个表作为一个输出输出。如果我使用循环将它们放在一个列表中,那么所有输出都等于最后一个。 例如:

库(闪亮)

ui对于这样的用例,我通常使用
lappy
。这样,您就不会遇到惰性评估的问题

library(shiny)

ui <- fluidPage(
  mainPanel(
    uiOutput("tables")
  )
)

server <- function(input, output) {
  output$tables <- renderUI({
    data=array(rnorm(150),c(10,5,3))

    tfc = function(m){renderTable({m})}

    lapply(1:3, function(i){tfc(data[,,i])})
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)

ui对于这样的用例,我通常使用
lappy
。这样,您就不会遇到惰性评估的问题

library(shiny)

ui <- fluidPage(
  mainPanel(
    uiOutput("tables")
  )
)

server <- function(input, output) {
  output$tables <- renderUI({
    data=array(rnorm(150),c(10,5,3))

    tfc = function(m){renderTable({m})}

    lapply(1:3, function(i){tfc(data[,,i])})
  })
}

shinyApp(ui = ui, server = server)
库(闪亮)

ui要解决此问题,可以对函数参数进行求值:

tfc=函数(m){
力(m)
可渲染(m)
}

为每个循环迭代创建一个范围:

for (i in 1:3) {
  local({
    i <- i
    result[[i]] <<- tfc(data[,,i])
  })
}
for(1:3中的i){
本地的({

i要解决这个问题,可以对函数参数进行求值:

tfc=函数(m){
力(m)
可渲染(m)
}

为每个循环迭代创建一个范围:

for (i in 1:3) {
  local({
    i <- i
    result[[i]] <<- tfc(data[,,i])
  })
}
for(1:3中的i){
本地的({
我