在Rshiny UI中,我有两个selectinputs years和tunnel:
selectInput("years", "Year", seq(min(df_map$jaar),max(df_map$jaar),1), selected = max(df_map$jaar), multiple = FALSE),
selectInput("tunnel", "Tunnel", c("ALL", sort(unique(df_map$tunnelnaam))), multiple = FALSE)
在Rshiny Server中我想按如下方式进行分组,以便我可以选择所有隧道以及单个隧道:
filteredData <- reactive({
if(input$tunnel == "ALL") {
subset(df_map, jaar %in% input$years)
}
if(input$tunnel != "ALL") {
subset(df_map, jaar %in% input$years & tunnelnaam %in% input$tunnel)
}
})
但是在选择ALL时出现以下错误:
addCircleMarkers requires non-NULL longitude/latitude values
当选择所有隧道时,似乎filteredData()不起作用。有没有人知道如何在Rshiny中选择所有隧道以及单个隧道?任何帮助将不胜感激。
答案 0 :(得分:1)
如果没有可重复的示例和样本数据,很难说出来!
我可以建议尝试:
filteredData <- reactive({
if(input$tunnel == "ALL") {
subset(df_map, jaar %in% input$years)
else{
subset(df_map, jaar %in% input$years & tunnelnaam %in% input$tunnel)
}
})
或
filteredData <- reactive({
if(input$tunnel != "ALL"){
subset(df_map, jaar %in% input$years & tunnelnaam %in% input$tunnel)
else{
subset(df_map, jaar %in% input$years)
}
})
答案 1 :(得分:0)
我用一个复选框解决了这个问题&#34;显示所有隧道&#34;在用户界面中:
UI:
checkboxInput("show_all_tunnels", "Show all tunnels", TRUE)
服务器:
filteredData <- reactive({
if(input$show_all_tunnels) df_map[df_map$jaar == input$years,] else df_map[df_map$jaar == input$years & df_map$tunnelnaam == input$tunnels,]
})