【发布时间】:2017-11-14 05:37:07
【问题描述】:
这篇文章是a previous post 的扩展,我不小心过度简化了我的示例代码来复制问题。我正在尝试根据用户在输入字段中选择的字段数量重复创建用于闪亮的变量。提供的答案非常合适,我希望对其进行扩展。上一篇文章的过度简化是使用 numericInput 来确定要生成的字段数,而实际上我需要计算从 selectInput 中选择了多少条目来确定要填充多少字段。然后我需要反复调用服务器中的那些生成字段来生成输出。下面是我尝试扩展此问题的示例代码。
my_letters <- c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
my_names <- c("Mary", "Joe", "John", "Steve", "Bob", "Linda", "Emily", "Kevin", "Michael", "Tom")
my_number <- as.character(1:10)
my_df <- data.frame(my_letters, my_names, my_number)
letter_choices <- as.character(unique(my_df$my_letters))
ui <- fluidPage(
selectInput("num_selected", label = "Select Letters", choices = letter_choices, selected = "", multiple = TRUE, selectize = TRUE),
uiOutput("condPanels")
)
server<-function(input,output,session){
output$condPanels <- renderUI({
# if selected value = 0 dont create a condPanel,...
if(!nrow(input$num_selected)) return(NULL)
tagList(
lapply(1:nrow(input$num_selected), function(nr){
conditionalPanel(
condition = paste0("input.num_selected >= ", nr),
textOutput(paste0("Name", nr), "Name"),
textOutput(paste0("Number", nr), "Number")
)
})
)
})
output$Name1 <- renderText({ as.character(my_df$my_names[1]) })
output$Name2 <- renderText({ as.character(my_df$my_names[2]) })
output$Number1 <- renderText({ as.character(my_df$my_number[1]) })
output$Number2 <- renderText({ as.character(my_df$my_number[2]) })
}
shinyApp(ui=ui, server=server)
【问题讨论】:
-
所以你想要
textOutput()而不是textInput()?那确实会有点不同;)所以也没有条件输入? -
output$condPanels