Як виправити в r: відсутнє значення, де потрібне значення true/false
Помилка, з якою ви можете зіткнутися в R:
Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed
Ця помилка виникає, коли ви порівнюєте значення з NA в операторі if у R за допомогою синтаксису x == NA .
Оператор if очікує значення TRUE або FALSE, тому замість цього слід використовувати is.na(x) , оскільки ця функція завжди повертає TRUE або FALSE.
Як відтворити помилку
Припустімо, ми намагаємося переглянути список значень у векторі в R і друкуємо слово «відсутнє» кожного разу, коли у векторі є значення NA:
#define vector with some missing values x <- c(2, NA, 5, 6, NA, 15, 19) #loop through vector and print "missing" each time an NA value is encountered for (i in 1:length(x)) { if (x[i] == NA) { print(' Missing ') } } Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed
Ми отримуємо помилку, оскільки ми використали синтаксис x[i] == NA .
Як виправити помилку
Нам потрібно змінити синтаксис на is.na(x) наступним чином:
#define vector with some missing values x <- c(2, NA, 5, 6, NA, 15, 19) #loop through vector and print "missing" each time an NA value is encountered for (i in 1:length(x)) { if (is. na (x[i])) { print(' Missing ') } } [1] “Missing” [1] “Missing”
Зауважте, що ми не отримуємо повідомлення про помилку та можемо друкувати слово «відсутнє» щоразу, коли зустрічаємо значення NA у векторі.
Додаткові ресурси
У наступних посібниках пояснюється, як виправити інші типові помилки в R:
Як виправити: NAs введено примусово
Як виправити: неправильна кількість індексів у матриці
Як ремонтувати: кількість елементів, які потрібно замінити, не є кратною довжині заміни