Як виправити в 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 введено примусово
Як виправити: неправильна кількість індексів у матриці
Як ремонтувати: кількість елементів, які потрібно замінити, не є кратною довжині заміни

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *