仅当非空值时,如何在输入和过滤数据中具有默认的 NULL 值?

Posted

技术标签:

【中文标题】仅当非空值时,如何在输入和过滤数据中具有默认的 NULL 值?【英文标题】:How to have default NULL value in Input & filter data only when non null value? 【发布时间】:2021-08-24 16:23:05 【问题描述】:

期望的结果:我正在尝试默认显示/绘制所有数据,默认情况下selectInut中的NULL值仅当在selectInputshiny 应用程序中选择了某些非空输入值时过滤数据。

我发现Force no default selection in selectInput() SO 发布了将 NULL 值 添加到 SelectInput 的帖子,但到目前为止它只对我部分起作用。

问题:它仅在我选择一些非 nulll 值时才有效,否则会产生空白输出(似乎 if else 此处的失败可能是由于 reactive() 函数,但我不知道为什么会这样)。


代码如下:

ui

selectInput(inputId = "vaccine_center_state_select",
                         label = "Select State to narrow your search", 
                         choices = c("",unique(vacc_centers$state))
                         ,selected = NULL 
                         ,multiple = FALSE
             ),

服务器:

filtered_vaccine_centers <- reactive(
    
    req(input$vaccine_center_state_select)
    
    if(!is.null(input$vaccine_center_state_select))
        
        
            filtered_vaccine_centers <- vacc_centers %>% 
            filter(state == input$vaccine_center_state_select)
        
        
    else filtered_vaccine_centers <- vacc_centers
        
    
    ) %>% 
        bindCache(input$vaccine_center_state_select)

【问题讨论】:

@Vineet,一个友好的建议,在印度使用未经批准的地图是非法的,并且会受到处罚。阅读Section 79(3)(b) of IT Act of India。其次,我记得你几天前发布了一个 xml 数据提取问题。解决了吗? 感谢@AnilGoyal 感谢您的建议和帮助,从我在SO 上发布关于最新正确的印度地图可用性来源 以及最近(昨天和今天) ) 我必须了解正确的地图来源,并且今晚将使用正确的印度地图进行更新。这是我的正确地图请求的帖子,最后我已经为其他所有人回答了:***.com/questions/67847391/… @AnilGoyal,感谢upvote,已经在使用最新地图更新我的代码 【参考方案1】:

当我做了几处更改时它起作用了..不确定哪一个是因素

    而不是 null 使用其他文本,即“未选择状态”并对其应用条件: 将数据框名称 filtered_vaccine_center 更改为 filtered_vaccine

ui

selectInput(inputId = "vaccine_center_state_select",
                         label = "Select State to narrow your search", 
                         choices = c("No State selected",unique(vacc_centers$state))
                         ,selected = "No State selected" 
                         ,multiple = FALSE
             ),

服务器:

filtered_vaccine_centers <- reactive(
    
    req(input$vaccine_center_state_select)
    
    if(input$vaccine_center_state_select != "No State selected")
        
        
            filtered_vaccine <- vacc_centers %>% 
                                filter(state == input$vaccine_center_state_select)
        
        
    else filtered_vaccine <- vacc_centers
        
    
    ) %>% 
        bindCache(input$vaccine_center_state_select)

不使用国家地图坐标的纬度、长轴上的疫苗接种中心点

输出

【讨论】:

以上是关于仅当非空值时,如何在输入和过滤数据中具有默认的 NULL 值?的主要内容,如果未能解决你的问题,请参考以下文章

仅当用户输入值时按参数搜索

当字典中没有匹配的非空值时,返回null。

加入后如何删除具有非空值的重复列? [复制]

在对象中复制和过滤空值时遇到问题

我只需要在 pyspark 数据框中附加那些具有非空值的人

输入类型日期的占位符(仅当未输入值时)