Dplyr에서 na를 평균으로 바꾸는 방법


다음 방법을 사용하면 R의 dplyrTidyr 패키지 함수를 사용하여 NA 값을 평균으로 바꿀 수 있습니다.

방법 1: NA 값을 열의 평균으로 대체

 df %>% mutate(across(col1, ~replace_na(., mean(., na. rm = TRUE ))))

방법 2: 여러 열의 NA 값을 평균으로 대체

 df %>% mutate(across(c(col1, col2), ~replace_na(., mean(., na. rm = TRUE ))))

방법 3: 모든 숫자 열의 NA 값을 평균으로 대체

 df %>% mutate(across(where(is. numeric ), ~replace_na(., mean(., na. rm = TRUE ))))

다음 예에서는 다음 데이터 프레임을 사용하여 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'),
                 points=c(17, 13, NA, 9, 25),
                 rebounds=c(3, 4, NA, NA, 8),
                 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C NA NA 2
4 D 9 NA 4
5 E 25 8 NA

예시 1: NA 값을 열의 평균으로 대체

다음 코드는 포인트 열의 NA 값을 포인트 열의 평균 값으로 바꾸는 방법을 보여줍니다.

 library (dplyr)
library (tidyr)

#replace NA values in points column with mean of points column
df <- df %>% mutate(across(points, ~replace_na(., mean(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 16 NA 2
4 D 9 NA 4
5 E 25 8 NA

포인트 열의 평균값이 16이었으므로 포인트 열의 NA 값이 16으로 대체되었습니다.

다른 모든 열은 변경되지 않았습니다.

예시 2: 여러 열의 NA 값을 평균으로 대체

다음 코드는 포인트블록 열의 NA 값을 해당 열 평균으로 바꾸는 방법을 보여줍니다.

 library (dplyr)
library (tidyr)

#replace NA values in points and blocks columns with their respective means
df <- df %>% mutate(across(c(points, blocks), ~replace_na(., mean(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 16 NA 2
4 D 9 NA 4
5 E 25 8 2

포인트블록 열의 NA 값은 모두 해당 열 평균으로 대체되었습니다.

예시 3: 모든 숫자 열에서 NA 값을 평균으로 대체

다음 코드는 각 숫자 열의 NA 값을 해당 평균값으로 바꾸는 방법을 보여줍니다.

 library (dplyr)
library (tidyr)

#replace NA values in all numeric columns with their respective means
df <- df %>% mutate(across(where(is. numeric ), ~replace_na(., mean(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 16 5 2
4 D 9 5 4
5 E 25 8 2

모든 숫자 열의 NA 값은 해당 열 평균으로 대체되었습니다.

숫자가 아닌 유일한 열 (플레이어) 은 변경되지 않았습니다.

추가 리소스

다음 튜토리얼에서는 dplyr에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

dplyr을 사용하여 특정 문자열이 포함된 행을 필터링하는 방법
dplyr을 사용하여 상대 빈도를 계산하는 방법
dplyr을 사용하여 그룹별로 첫 번째 행을 선택하는 방법

의견을 추가하다

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