Na를 r의 중앙값으로 바꾸는 방법


R의 dplyrTidyr 패키지의 함수를 사용하여 NA 값을 중앙값으로 바꾸려면 다음 방법을 사용할 수 있습니다.

방법 1: NA 값을 열의 중앙값으로 대체

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

방법 2: NA 값을 여러 열의 중앙값으로 대체

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

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

 df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., 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 median of points column
df <- df %>% mutate(across(points, ~replace_na(., median(., na. rm = TRUE ))))

#view updated data frame
df

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

포인트 열의 중앙값은 15이므로 포인트 열의 NA 값은 15로 대체되었습니다.

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

예시 2: NA 값을 여러 열의 중앙값으로 대체

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

 library (dplyr)
library (tidyr)

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

#view updated data frame
df

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

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

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

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

 library (dplyr)
library (tidyr)

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

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1.0
2 B 13 4 1.0
3 C 15 4 2.0
4 D 9 4 4.0
5 E 25 8 1.5

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

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

추가 리소스

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

dplyr을 사용하여 특정 문자열이 포함된 행을 필터링하는 방법
dplyr을 사용하여 행을 삭제하는 방법
dplyr에서 across() 함수를 사용하는 방법

의견을 추가하다

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