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

추가 리소스

R에서 열 이름을 반복하는 방법
R에서 여러 열의 평균을 계산하는 방법
R의 특정 열을 합산하는 방법

의견을 추가하다

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