我有一个代码,可以根据用户输入生成数据帧。 请找到随附的我的代码。
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})})} )
})
})
}
))
您知道如何访问输入,以及如何更改表的名称吗?