评估是否有光泽的应用程序输入不为空不工作,怎么做是正确的?

问题描述 投票:0回答:2

我有一个闪亮的应用程序,并具有数字输入和我像空的UI启动它的价值,我想评估如果该值不为空,然后做一些事情,但它不工作

我这是怎么开始的UI

numericInput("Max_Risk", label="Max Risk", value="")

当按钮被按下

我将其值赋给变量

max_risk = input$Max_Risk

然后,我有一个,如果条件评估max_risk的价值

if (max_risk != ""){
dat2 <- dplyr::filter(dat2, coe_var < max_risk)
                }

当有输入的值,可以说数字86,它的工作和进入的声明,并与代码继续,但是当在输入没有价值,即留空我得到这个错误

Warning: Error in if: missing value where TRUE/FALSE needed

我需要的是,如果输入为空,那么请不要if语句做并继续代码,任何帮助谢谢

r shiny
2个回答
1
投票

Juan

也许这是在开始NA值。尝试:

if (!is.na(max_risk) && max_risk != ""){
dat2 <- dplyr::filter(dat2, coe_var < max_risk)
                }

警告:错误的,如果:缺失值,其中TRUE / FALSE,通常需要意味着您正试图评估变量,它是NA


0
投票

由“空”假设你的意思的对象还没有被创建,你可以使用exists像这样:

if (exists("max_risk") && max_risk != ""){
    dat2 <- dplyr::filter(dat2, coe_var < max_risk)
    }

如果max_risk是一个对象,然后exists("max_risk")将返回TRUE。所述&&首先评估左侧表达和只在左被发现是TRUE计算合适的表情。因此,如果一个对象不存在,那么max_risk != ""将不进行评估。

© www.soinside.com 2019 - 2024. All rights reserved.