【发布时间】:2020-09-04 16:16:26
【问题描述】:
我有下面的闪亮应用程序,用户可以在其中从 dt data.frame 中选择一个或多个列名
name<-c("John","Jack","Bill")
value1<-c(2,4,6)
add<-c("SDF","GHK","FGH")
value2<-c(3,4,5)
dt<-data.frame(name,value1,add,value2)
那么对于他所做的每一个选择,相对的selectInput() 可能会显示在下面。也许我可以在每种情况下使用if,但问题是我的真实数据集可能要大得多,并且每次都有不同的列名,所以我正在寻找一种方法来立即将pickerInput() 选择的名称与相关的创建联系起来selectInput() 将包括列值。例如,如果有人选择了所有 4 个列名,则应使用相对列名作为标签创建 4 个 selectInputs。
library(shiny)
library(shinyWidgets)
# ui object
ui <- fluidPage(
titlePanel(p("Spatial app", style = "color:#3474A7")),
sidebarLayout(
sidebarPanel(
pickerInput(
inputId = "p1",
label = "Select Column headers",
choices = colnames( dt),
multiple = TRUE,
options = list(`actions-box` = TRUE)
),
uiOutput("widg")
),
mainPanel(
)
)
)
# server()
server <- function(input, output) {
output$widg<-renderUI({
})
}
# shinyApp()
shinyApp(ui = ui, server = server)
【问题讨论】: