해결 방법: 교체할 항목 수가 교체 길이의 배수가 아닙니다.
R에서 발생할 수 있는 오류는 다음과 같습니다.
Warning message: number of items to replace is not a multiple of replacement length
이 오류는 벡터 또는 데이터 프레임 열의 특정 수의 요소(3개 요소로 가정)를 다른 수의 요소(6개 요소로 가정)로 바꾸려고 할 때 발생합니다.
이 튜토리얼에서는 이 오류를 수정하는 방법을 정확하게 설명합니다.
오류를 재현하는 방법
R에 첫 번째 열에 몇 가지 누락된 값이 있는 다음과 같은 데이터 프레임이 있다고 가정합니다.
#create data frame df <- data. frame (a=c(3, NA, 7, NA, NA, 14), b=c(4, 4, 5, 12, 13, 18)) #view data frame df ab 1 3 4 2 NA 4 3 7 5 4 NA 12 5 NA 13 6 14 18
이제 첫 번째 열의 누락된 값을 두 번째 열의 값으로 바꾸려고 한다고 가정합니다.
#attempt to replace missing values in first column with values in second column df$a[is. na (df$a)] <- df$b Warning message: In df$a[is.na(df$a)] <- df$b: number of items to replace is not a multiple of replacement length
첫 번째 열의 누락된 값 3개 를 두 번째 열의 6개 값으로 바꾸려고 했기 때문에 오류가 발생합니다.
오류를 수정하는 방법
이 오류를 해결하는 가장 쉬운 방법은 ifelse() 문을 사용하는 것입니다.
#replace missing values in column 'a' with corresponding values in column 'b'
df$a <- ifelse(is. na (df$a), df$b, df$a)
#view updated data frame
df
ab
1 3 4
2 4 4
3 7 5
4 12 12
5 13 13
6 14 18
ifelse() 문은 “a” 열의 값이 비어 있는지 확인합니다. 그렇다면 “b” 열의 해당 값으로 대체되고, 그렇지 않으면 그대로 유지됩니다.
이 오류를 해결하는 또 다른 방법은 모든 누락된 값을 특정 숫자로 바꾸는 것입니다.
#replace all missing values in column 'a' with zero
df$a[is. na (df$a)] <- 0
#view updated data frame
df
ab
1 3 4
2 0 4
3 7 5
4 0 12
5 0 13
6 14 18
이 방법을 사용하면 “a” 열의 각 누락된 값이 0으로 대체됩니다.
추가 리소스
R에서 수정하는 방법: 강제로 인해 발생하는 NA
R에서 복구하는 방법: 범위를 벗어난 인덱스
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.