Оцените, если блестящий ввод приложения не пустой не работает, как это сделать правильно? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть приложение с тонким шрифтом и с числовым вводом, и я инициирую его значение в пользовательском интерфейсе как пустое, я пытаюсь оценить, не является ли это значение пустым, затем сделать что-то, но оно не работает

этокак я запускаю пользовательский интерфейс

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, оно работает и попадает в оператор of и продолжается с кодом, но когда нет значения вполе ввода, т.е. оставлено пустым, я получаю эту ошибку

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

Мне нужно, чтобы, если поле ввода оставалось пустым, не делали оператора if и продолжайте с кодом, любая помощь, спасибо

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Хуан

Может быть, это значение NA в начале.Попробуйте:

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

Предупреждение: Ошибка в случае, если: пропущенное значение, где требуется ИСТИНА / ЛОЖЬ, обычно означает, что вы пытаетесь вычислить переменную, которая является NA

0 голосов
/ 05 февраля 2019

Предполагая, что под "пустым" вы подразумеваете, что объект не был создан, вы можете использовать exists примерно так:

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

Если max_risk является объектом, то exists("max_risk") вернет TRUE.&& сначала вычисляет левое выражение и только правое выражение, если найдено, что левое выражение равно TRUE.Поэтому, если объект не существует, max_risk != "" не будет оцениваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...