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

Dodaj komentarz

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