在R中访问动态id
这是对我前面问题的延伸 下面是我现在正在使用的闪亮代码在R中访问动态id,r,dynamic,shiny,shinydashboard,R,Dynamic,Shiny,Shinydashboard,这是对我前面问题的延伸 下面是我现在正在使用的闪亮代码 library(shiny) library(shinydashboard) ui <- fluidPage( br(), selectInput("inpt", "Input Number", seq(1,50), selectize = FALSE), br(), uiOutput("selectors") ) server <- function(input, output, session){
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)
但这方面的产出是:
NULL
NULL
NULL
我认为我的eval和parse方法是错误的,所以我尝试了justinpt
输出为(在选择输入中选择了3个)
所以我的评估,解析方法是正确的。
那么如何访问上述示例中的id1、id2、…、idn?请检查以下内容:
library(shiny)
library(shinydashboard)
ui <- fluidPage(
br(),
selectInput("inpt", "Input Number", seq(1,50), selectize = FALSE),
br(),
uiOutput("selectors"),
uiOutput("printMyDynamicInputs"),
uiOutput("printMyFirstDynamicInput")
)
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)
})
myDynamicInputs <- reactive({
lapply(1:input$inpt, function(i){
input[[paste0("id",i)]]
})
})
output$printMyDynamicInput <- renderUI({
paste("You selected:", paste(myDynamicInputs(), collapse = ", "))
})
output$printMyFirstDynamicInputs <- renderUI({
paste("You selected:", input$id1)
})
}
shinyApp(ui, server)
库(闪亮)
图书馆(shinydashboard)
我想这可能就是你们想要的写答案的好方法。谢谢但是,我想单独访问所有ID。我该怎么做?就像任何其他输入一样,例如input[[“id1”]
或input$id1
,只是更新了答案。
for (j in 1:inpt){
print(eval(parse(text = paste0("input$", paste0("in","pt")))))
}
3
3
3
library(shiny)
library(shinydashboard)
ui <- fluidPage(
br(),
selectInput("inpt", "Input Number", seq(1,50), selectize = FALSE),
br(),
uiOutput("selectors"),
uiOutput("printMyDynamicInputs"),
uiOutput("printMyFirstDynamicInput")
)
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)
})
myDynamicInputs <- reactive({
lapply(1:input$inpt, function(i){
input[[paste0("id",i)]]
})
})
output$printMyDynamicInput <- renderUI({
paste("You selected:", paste(myDynamicInputs(), collapse = ", "))
})
output$printMyFirstDynamicInputs <- renderUI({
paste("You selected:", input$id1)
})
}
shinyApp(ui, server)