【发布时间】:2021-11-14 11:53:56
【问题描述】:
用户界面
selectInput("marital_status", "Marital Status: ", choices = c("SELECT", setNames(marital_status$m_id,marital_status$m_name)))
服务器
selected_members <- reactive(
tmk %>% filter(between(AGE, input$age[1], input$age[2])) %>%
filter(between(ROOMS, input$room[1], input$room[2])) %>%
filter(between(PMT, input$pmt[1], input$pmt[2])) %>%
filter(MARITAL_STATUS %in% input$marital_status)
)
当前 MARITAL_STATUS 上的最后一个过滤器在 selected_memebers 数据帧中产生 0 结果,因为 input$marital_status 处的 selectInput 返回值在应用程序首次运行时初始化为“SELECT”,有什么方法可以选择“占位符”/“默认”要从过滤器中忽略,我不太确定确切的格式,任何帮助将不胜感激!
P.S:代码适用于带有 MARITAL_STATUS 输入值/选择的单个选择
【问题讨论】:
-
我不确定它是否会有所帮助,但是当我遇到类似的事情时,我只是将反应式设置为 ifelse。即
reactive({if(input$marital_status == "SELECT") {tmk} else {tmk%>%filter(MARITAL_STATUS %in% input$marital_status) }) -
您可以使用另一个 reactiveVal,它在 MARITAL_STATUS 更改时首先填充,但在此之前不填充
-
@Silentdevildoll 你的建议似乎没有按预期工作,if(input$marital_status == "SELECT") {tmk} else {tmk%>%filter(MARITAL_STATUS %in% input$marital_status)} tmk %>% 过滤器(介于(年龄,输入$age[1],输入$age[2]))%>% 过滤器(介于(房间,输入$room[1],输入$room[2]))% >% filter(between(PMT, input$pmt[1], input$pmt[2])) ... 这显示相同数量的记录与占位符和任何其他实际选择,我错过了什么吗?
-
@mnist 你能详细说明一下吗,请注意用户可以选择“占位符”/“选择”只是为了关闭婚姻状态过滤器或不时选择它的任何值
-
您能否提供问题所需的
ui和server代码,以便在需要时连同必要的数据一起完全重现问题?