我有几个数据帧用于匹配响应与响应选择输入菜单的相应值。例如:
City Country
1 New York USA
2 Chicago USA
3 London United Kingdom
我编写了以下代码,允许用户选择国家/地区,然后在下面的反应式selectinput()中,选择与所述国家/地区选择对应的城市/城市。
服务器:
server <- function(input, output, session){
CountryX <- reactive(input$country)
observe({
updateSelectInput(session, "city",
choices = (df[(df$`Country` == CountryX()),1]))})
UI:
selectInput(inputId = "country", label = ("Select Country"),
choices = sort(unique(c(as.character(df$`Country`)))),
selected = NULL),
selectInput(inputId = "city", label = ("Select City"), ""),
我遇到的问题是使用唯一的国家/地区记录。如果我通过这个代码运行上面的数据框示例,我会在为国家选择“USA”后在城市菜单中看到“纽约”和“芝加哥”。但是,如果我选择“英国”作为我的国家,我不会将“伦敦”视为一个选项,而是我只会获得列标题,在这种情况下,“城市”作为“城市”菜单中的选项。
当我选择具有多个城市的国家/地区时,“城市”列标题显示为灰色,并且菜单从df中与该国家/地区匹配的第一个城市开始。为什么我不能让我的数据中只列出一个相应城市的国家出现在城市菜单中,为什么我只看到列标题“城市”作为选项?感谢您的帮助。