R에서 누락된 값을 대치하는 방법(예제 포함)
종종 R의 데이터 프레임 열에서 누락된 값을 해당 특정 열의 평균 또는 중앙값으로 바꾸고 싶을 수도 있습니다.
단일 열의 누락된 값을 바꾸려면 다음 구문을 사용할 수 있습니다.
df$col[ is.na (df$col)] <- mean(df$col, na.rm = TRUE )
여러 열의 누락된 값을 바꾸려면 다음 구문을 사용할 수 있습니다.
for(i in 1: ncol (df)) { df[ , i][ is.na (df[ , i])] <- mean(df[ , i], na.rm = TRUE ) }
이 튜토리얼에서는 실제로 이러한 기능을 사용하는 방법을 정확하게 설명합니다.
예시 1: 누락된 값을 열 평균으로 바꾸기
다음 코드는 데이터 프레임의 첫 번째 열에서 누락된 값을 첫 번째 열의 평균값으로 바꾸는 방법을 보여줍니다.
#create data frame df <- data.frame(var1=c(1, NA, NA, 4, 5), var2=c(7, 7, 8, 3, 2), var3=c(3, 3, 6, 6, 8), var4=c(1, 1, 2, 8, 9)) #replace missing values in first column with mean of first column df$var1[ is.na (df$var1)] <- mean(df$var1, na.rm = TRUE ) #view data frame with missing values replaced df var1 var2 var3 var4 1 1.000000 7 3 1 2 3.333333 7 3 1 3 3.333333 8 6 2 4 4.000000 3 6 8 5 5.000000 2 8 9
첫 번째 열의 평균값은 3.333 이므로 첫 번째 열의 결측값은 3.333 으로 대체되었습니다.
다음 코드는 각 열의 누락된 값을 해당 열의 평균으로 바꾸는 방법을 보여줍니다.
#create data frame df <- data.frame(var1=c(1, NA, NA, 4, 5), var2=c(7, 7, 8, NA, 2), var3=c(NA, 3, 6, NA, 8), var4=c(1, 1, 2, 8, 9)) #replace missing values in each column with column means for(i in 1: ncol (df)) { df[ , i][ is.na (df[ , i])] <- mean(df[ , i], na.rm = TRUE ) } #view data frame with missing values replaced df var1 var2 var3 var4 1 1.000000 7 5.666667 1 2 3.333333 7 3.000000 1 3 3.333333 8 6.000000 2 4 4.000000 6 5.666667 8 5 5.000000 2 8.000000 9
예시 2: 누락된 값을 열 중앙값으로 대체
다음 코드는 데이터 프레임의 첫 번째 열에서 누락된 값을 첫 번째 열의 중앙값으로 바꾸는 방법을 보여줍니다.
#create data frame df <- data.frame(var1=c(1, NA, NA, 4, 5), var2=c(7, 7, 8, NA, 2), var3=c(NA, 3, 6, NA, 8), var4=c(1, 1, 2, 8, 9)) #replace missing values in first column with median of first column df$var1[ is.na (df$var1)] <- median(df$var1, na.rm = TRUE ) #view data frame with missing values replaced df var1 var2 var3 var4 1 1 7 NA 1 2 4 7 3 1 3 4 8 6 2 4 4 NA NA 8 5 5 2 8 9
첫 번째 열의 중앙값은 4 이므로 첫 번째 열의 누락된 값은 4 로 대체되었습니다.
다음 코드는 각 열의 누락된 값을 해당 열의 중앙값으로 바꾸는 방법을 보여줍니다.
#create data frame df <- data.frame(var1=c(1, NA, NA, 4, 5), var2=c(7, 7, 8, NA, 2), var3=c(NA, 3, 6, NA, 8), var4=c(1, 1, 2, 8, 9)) #replace missing values in each column with column medians for(i in 1: ncol (df)) { df[ , i][ is.na (df[ , i])] <- median(df[ , i], na.rm = TRUE ) } #view data frame with missing values replaced df var1 var2 var3 var4 1 1 7 6 1 2 4 7 3 1 3 4 8 6 2 4 4 7 6 8 5 5 2 8 9