动态表数和动态行数-R Shiny

时间:2018-07-27 07:18:26

标签: r dataframe input dynamic shiny

我有一个代码,可以根据用户输入生成数据帧。 请找到随附的我的代码。

library(shiny)

runApp(list(
ui = pageWithSidebar(
headerPanel("test"),
sidebarPanel(
  numericInput("number","Input No. of tables",value = 1,min=1),
  numericInput("rows","Input No. of rows",value = 1,min=1),
  numericInput("col","Input No. of cols",value = 1,min=1)),


mainPanel(
  column(tableOutput("value"), width = 1))
),   
server = function(input,output){
observe({
  if (input$number == 0) 
    return()
  isolate({
    output$value <-renderTable({
      num.inputs.col1 <- paste0("<input id='c1n", 1:input$rows, "' class='shiny-bound-input' type='number' value='1'>")
      lapply(seq(input$number), function(l){
        data.frame(EXPERT = replicate(input$col,num.inputs.col1))
      })}, sanitize.text.function = function(x) x)
  })
})
}
))

我的问题是我想将每个新表显示在不同的行(在下面)中,而不是与上一个表显示在同一行中。

这可能吗?

我也该如何访问这些输入?

提前谢谢

编辑

PoGibas谢谢您,

你的意思是这样吗?

library(shiny)

runApp(list(
ui = pageWithSidebar(
 headerPanel("test"),
sidebarPanel(
  numericInput("number","Input No. of tables",value = 1,min=1),
  numericInput("rows","Input No. of rows",value = 1,min=1),
  numericInput("col","Input No. of cols",value = 1,min=1)),


mainPanel(
  column(tableOutput("value"), width = 1))
),   
server = function(input,output){
 observe({
   if (input$number == 0) 
     return()
   isolate({
     output$value <-renderUI({
      num.inputs.col1 <- paste0("<input id='c1n", 1:input$rows, "' class='shiny-bound-input' type='number' value='1'>")
      lapply(seq(input$number), function(l){
        renderTable({
        data.frame(EXPERT= replicate(input$col,num.inputs.col1))
      },sanitize.text.function = function(x){x})})} )
  })
})
}
))

您知道如何访问输入,以及如何更改表的名称吗?

0 个答案:

没有答案