R에서 수정하는 방법: 강제로 인해 발생하는 na


R에서 접할 수 있는 일반적인 경고 메시지는 다음과 같습니다.

 Warning message:
NAs introduced by coercion 

이 경고 메시지는 as.numeric()을 사용하여 R의 벡터를 숫자 벡터로 변환하고 원래 벡터에 숫자가 아닌 값이 있을 때 발생합니다.

분명히 말하면 이 경고 메시지를 “수정”하기 위해 어떤 작업도 수행할 필요가 없습니다. R은 단순히 원래 벡터의 일부 값을 숫자 값으로 변환할 수 없기 때문에 NA로 변환했다고 경고합니다.

그러나 이 튜토리얼에서는 이 경고 메시지가 전혀 표시되지 않도록 하려는 경우 수행할 수 있는 정확한 단계를 공유합니다.

경고 메시지를 재현하는 방법

다음 코드는 문자형 벡터를 숫자형 벡터로 변환합니다.

 #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은 문자형 벡터를 숫자형 벡터로 변환하지만 원본 벡터의 두 값을 숫자형 벡터로 변환할 수 없으므로 강제로 인해 발생하는 경고 메시지 NA를 표시합니다.

방법 #1: 경고 제거

이 경고 메시지를 처리하는 한 가지 방법은 문자형 벡터를 숫자형 벡터로 변환할 때 억제Warnings() 함수를 사용하여 경고 메시지를 억제하는 것입니다.

 #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은 경고 메시지를 표시하지 않고 문자형 벡터를 숫자형 벡터로 성공적으로 변환합니다.

방법 #2: 숫자가 아닌 값 바꾸기

처음에 경고 메시지를 피하는 한 가지 방법은 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은 경고 메시지를 표시하지 않고 문자형 벡터를 숫자형 벡터로 성공적으로 변환합니다.

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 해결하는 방법을 설명합니다.

R에서 수정하는 방법: 이름이 이전 이름과 일치하지 않습니다.
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.
R에서 수정하는 방법: 대비는 수준이 2개 이상인 요인에만 적용할 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다