评估闪亮的应用输入是否不为空无法正常工作,如何正确执行?

时间:2019-02-05 20:01:32

标签: r shiny

我有一个灵巧的应用程序,带有数字输入,并且像空一样在UI中初始化它的值,我试图评估该值是否不为空,然后做点什么,但不起作用

这就是我在用户界面上启动的方式

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

按下按钮时

我将其值分配给变量

max_risk = input$Max_Risk

然后我有一个if条件,该条件评估max_risk的值

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

当输入中有值时,可以说数字86,它确实起作用并进入statement并继续执行代码,但是当输入中没有值时(即留空),我得到了错误

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

我需要如果输入留为空白,则不要执行if语句并继续执行代码,谢谢您的帮助

2 个答案:

答案 0 :(得分:1)

胡安

也许一开始就是NA值。试试:

"Action": "iam:CreateUser"
  

警告:if错误:缺少需要TRUE / FALSE的值通常意味着您正在尝试评估一个不适用的变量

答案 1 :(得分: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 != ""将不会被评估。