UI
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_members数据帧中的0,因为在输入$MARITAL_STATUS处的selectInput返回值初始化为"0";SELECT";当应用程序第一次运行时;占位符"/"默认";过滤器中的选择将被忽略,我不太确定确切的格式,如果有任何帮助,将不胜感激!
第页。S: 代码适用于带有MARITAL_STATUS输入值/选择的单个选择
只需在reactive中的第一行添加一个req
。记住用{}
将你的表情包裹在reactive
中
selected_members <- reactive({
req(input$marital_status != "SELECT")
tmk %>% filter ...
})
如果您想要"过滤器";初始忽略占位符文本并仅在用户做出任何有效选择时进行搜索(或者在这种情况下返回占位符文本,返回更大的数据集,即跳过过滤器)
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])) %>%
{if(input$marital_status != "SELECT") filter(., MARITAL_STATUS == input$marital_status) else .}