Jak naprawić w r: na wprowadzone przez przymus
Typowym komunikatem ostrzegawczym, który możesz napotkać w R, jest:
Warning message: NAs introduced by coercion
Ten komunikat ostrzegawczy pojawia się, gdy używasz as.numeric() do konwersji wektora w R na wektor numeryczny, a w oryginalnym wektorze znajdują się wartości nienumeryczne.
Żeby było jasne, nie musisz nic robić, aby „naprawić” ten komunikat ostrzegawczy. R po prostu ostrzega, że niektóre wartości w oryginalnym wektorze zostały przekonwertowane na NA, ponieważ nie można było ich przekonwertować na wartości numeryczne.
Jednak w tym samouczku przedstawiono dokładne kroki, które możesz wykonać, jeśli nie chcesz w ogóle wyświetlać tego komunikatu ostrzegawczego.
Jak odtworzyć komunikat ostrzegawczy
Poniższy kod konwertuje wektor znakowy na wektor numeryczny:
#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')
#convert to numeric vector
x_num <- as. numeric (x)
#display digital vector
x_num
Warning message:
NAs introduced by coercion
[1] 1 2 3 NA 4 NA
R konwertuje wektor znakowy na wektor liczbowy, ale wyświetla komunikat ostrzegawczy NA wprowadzony przez wymuszenie, ponieważ dwóch wartości pierwotnego wektora nie można było przekonwertować na wartości numeryczne.
Metoda nr 1: Usuń ostrzeżenia
Jednym ze sposobów poradzenia sobie z tym komunikatem ostrzegawczym jest po prostu pominięcie go za pomocą funkcji supresWarnings() podczas konwersji wektora znakowego na wektor numeryczny:
#define character vector
x <- c('1', '2', '3', NA, '4', 'Hey')
#convert to numeric vector, suppressing warnings
suppressWarnings(x_num <- as.numeric (x))
#display digital vector
x_num
[1] 1 2 3 NA 4 NA
R pomyślnie konwertuje wektor znakowy na wektor liczbowy bez wyświetlania żadnego komunikatu ostrzegawczego.
Metoda nr 2: Zamień wartości inne niż numeryczne
Jednym ze sposobów uniknięcia komunikatu ostrzegawczego jest przede wszystkim zastąpienie nienumerycznych wartości oryginalnego wektora spacjami za pomocą funkcji gsub() :
#define character vector
x <- c('1', '2', '3', '4', 'Hey')
#replace non-numeric values with 0
x <- gsub(" Hey ", " 0 ", x)
#convert to numeric vector
x_num <- as. numeric (x)
#display digital vector
x_num
[1] 1 2 3 4 0
R pomyślnie konwertuje wektor znakowy na wektor liczbowy bez wyświetlania żadnego komunikatu ostrzegawczego.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:
Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach