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