动态数组表

时间:2015-08-17 07:08:13

标签: r shiny

我需要在Shiny中呈现N个表,其中N基于用户输入。

我最初的想法是做这样的事情:

ui.r

fluidPage(
  fluidRow(
    column(width=4
       ,dataTableOutput("table1")
       ,dataTableOutput("table2")
       ...
       ,dataTableOutput("table10")
    )
  )
)

server.r

shinyServer(function(input, output) {
    output$table1 <- renderDataTable({ ... })
    output$table2 <- renderDataTable({ ... })
    ...
    output$table10 <- renderDataTable({ ... })
}

但是你可以看到它真的很邋and,一旦它们要求多达20,30或40个表,它就会崩溃。

我想过把东西放在for循环中,如:

for(1:N) {
    ,dataTableOutput("table"+N)
}

但我确信有更好的方法。向我展示光R / Shiny专家!

1 个答案:

答案 0 :(得分:1)

更新

感谢nongkrong提供了很棒的链接: https://gist.github.com/wch/5436415/

让我的反应性工作有点麻烦,但这并不是真正的要求。

诀窍似乎是在renderUI()块中注入dataTableOutput()元素。工作非常好。

如何将renderDataTable()块指向您刚刚定义的上述标记,这也很简洁。