【发布时间】:2020-02-12 09:48:53
【问题描述】:
所以这是我之前问题的扩展。
Dynamic repeating conditionalPanel in R shiny dashboard
这是我现在正在使用的闪亮代码。
library(shiny)
library(shinydashboard)
ui <- fluidPage(
br(),
selectInput("inpt", "Input Number", seq(1,50), selectize = FALSE),
br(),
uiOutput("selectors")
)
server <- function(input, output, session){
output[["selectors"]] <- renderUI({
n <- input[["inpt"]]
selectors <- lapply(1:n, function(i){
selectInput(paste0("id",i), "Select number", seq(1,24), selected = 1)
})
do.call(function(...){
box(..., width = 2, status = "primary")
}, selectors)
})
}
shinyApp(ui, server)
它将根据'inpt'数字选择生成选择窗口。
现在我的问题是我想访问生成的选择输入的值。
示例:如果我选择了 3,则会生成三个输入,分别为 id1、id2、id3。
如何访问这些 ID?如果我想打印它们,我该怎么做?
for (j in 1:inpt){
print(eval(parse(text = paste0("input$", paste0("id",j)))))
}
但输出是:
NULL
NULL
NULL
我认为我的 eval 和 parse 方法是错误的,所以我只尝试了 inpt
for (j in 1:inpt){
print(eval(parse(text = paste0("input$", paste0("in","pt")))))
}
输出是(在选择输入中选择了 3)
3
3
3
所以我猜我的 eval, parse 方法是正确的。 那么如何访问上例中的 id1, id2, ..., idn 呢?
【问题讨论】:
-
我认为Shiny modules 可能是您正在寻找的内容
标签: r dynamic shiny shinydashboard