Jak naprawić w r: brakująca wartość, gdzie potrzebna jest prawda/fałsz


Błąd, który możesz napotkać w R to:

 Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

Ten błąd występuje, gdy porównujesz wartość z NA w instrukcji if w R przy użyciu składni x == NA .

Instrukcja if oczekuje wartości PRAWDA lub FAŁSZ, dlatego zamiast niej należy użyć is.na(x), ponieważ ta funkcja zawsze zwraca wartość PRAWDA lub FAŁSZ.

Jak odtworzyć błąd

Załóżmy, że próbujemy iterować po liście wartości w wektorze w R i wypisywać słowo „brak” za każdym razem, gdy w wektorze znajduje się wartość 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

Otrzymujemy błąd, ponieważ użyliśmy składni x[i] == NA .

Jak naprawić błąd

Musimy zmienić składnię na is.na(x) w następujący sposób:

 #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”

Należy pamiętać, że nie otrzymujemy błędu i możemy wydrukować słowo „brakujący” za każdym razem, gdy napotkamy w wektorze wartość NA.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:

Jak naprawić: NA wprowadzone przez przymus
Jak naprawić: Nieprawidłowa liczba indeksów w macierzy
Sposób naprawy: liczba elementów do wymiany nie jest wielokrotnością długości wymiany

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *