我在下拉菜单中有一个针对欧洲国家的selectInput(),用户可以在其中单击它并选择他希望看到的国家。 现在我想做的是,我想在下拉菜单中添加三个选项,分别为“全欧洲”,“中欧”和“非中欧”。
我只能在Selectinput函数中作为占位符来做到这一点...但是我想要的是,当用户选择“非中欧”时,他获得了被视为非中央欧洲国家的输出。而且我有身份证明。意思是,我知道哪些国家/地区属于非中央市场(关于我公司的管理)...而中欧类别将包括除非中央市场之外的所有国家/地区。 并且“全欧洲”类别将包含所有11个国家/地区。
有什么建议吗?
,也要清除。.我有一个包含很多变量的数据集,一个变量称为“ Office COuntry”,我希望该变量以某种方式(不知道如何)与该区域相关! ,然后用户在任何时候选择“ Non_Central”(例如,.Non_Central),那么他就直接获得有关所有非中心国家/地区的信息...希望使用户更轻松,更快捷,更灵活..
答案 0 :(得分:0)
library(shiny)
countries <- list(
"Central" = list(
"Country A",
"Country B"
),
"Non central" = list(
"Country C",
"Country D"
)
)
ui <- fluidPage(
selectInput("sel_region", "Select regions", multiple = TRUE,
choices = names(countries)),
selectInput("sel_country", "Select countries", multiple = TRUE,
choices = countries)
)
server <- function(input, output, session) {
observe({
x <- unlist(countries[input$sel_region])
updateSelectInput(session, "sel_country", selected = x)
})
}
shinyApp(ui, server)
编辑(根据OP的评论):
只有一个selectInput()
:
library(shiny)
countries <- list(
"Central" = list(
"Country A",
"Country B"
),
"Non central" = list(
"Country C",
"Country D"
)
)
ui <- fluidPage(
selectInput("sel_country", "Select countries", multiple = TRUE,
choices = c(list("Regions" = c("All", names(countries))), countries))
)
server <- function(input, output, session) {
observe({
if ("All" %in% input$sel_country) {
updateSelectInput(session, "sel_country", selected = unlist(countries))
} else if (any(input$sel_country %in% names(countries))) {
updateSelectInput(session, "sel_country",
selected = unlist(countries[input$sel_country]))
}
})
}
shinyApp(ui, server)