Я отримав це повідомлення про помилку:
Error in if (condition) { : missing value where TRUE/FALSE needed
або
Error in while (condition) { : missing value where TRUE/FALSE needed
Що це означає, і як це запобігти?
Я отримав це повідомлення про помилку:
Error in if (condition) { : missing value where TRUE/FALSE needed
або
Error in while (condition) { : missing value where TRUE/FALSE needed
Що це означає, і як це запобігти?
Відповіді:
Оцінка condition
результатів призвела до NA
. if
Умовне повинен мати або TRUE
або FALSE
результат.
if (NA) {}
## Error in if (NA) { : missing value where TRUE/FALSE needed
Це може статися випадково, оскільки результати розрахунків:
if(TRUE && sqrt(-1)) {}
## Error in if (TRUE && sqrt(-1)) { : missing value where TRUE/FALSE needed
Щоб перевірити, чи немає об'єкта, скористайтеся, is.na(x)
а не використовуйте x == NA
.
Дивіться також пов’язані помилки:
Помилка в аргументі if / while (умова) {: довжина дорівнює нулю
Помилка if / while (умова): аргумент не інтерпретується як логічний
if (NULL) {}
## Error in if (NULL) { : argument is of length zero
if ("not logical") {}
## Error: argument is not interpretable as logical
if (c(TRUE, FALSE)) {}
## Warning message:
## the condition has length > 1 and only the first element will be used
NA
ані з одного боку. Якщо я визначу:x = NA
а потім зроби,if (x == NA){ ... }
тоді ця помилка буде викинута під час виконання, коли аналізатор розглядає ліву частину подвійного рівняння. Щоб виправити цю помилку, переконайтеся, що кожна змінна в умовному режимі не використовує NAis.na(your_variable)
.