Dplyr에서 na를 평균으로 바꾸는 방법
다음 방법을 사용하면 R의 dplyr 및 Tidyr 패키지 함수를 사용하여 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을 사용하여 그룹별로 첫 번째 행을 선택하는 방법