해당 포스트에서는 R 데이터 필터링 방법 중 하나인 '포함되지 않는(not in)' 데이터 추출 방법을 설명합니다.
INTRO
R에서 원하는 데이터를 추출하려면 특정 컬럼을 선택하거나 데이터 내 값의 조건을 적용하여 추출하면 됩니다. 해당 포스트에서는 후자의 경우인, 조건을 이용해
filter 함수 설명
아래에서는 dplyr 패키지에서 제공하는 filter()
함수를 이용하여 설명합니다. dplyr 패키지는 다양한 데이터 처리를 지원해주는 R 필수 패키지 중 하나로, 사용법은 아래와 같으며 만약 처음 접하셨다면 아래 링크에서 간단한 사용법을 확인해 보시는 것을 추천 드립니다.
[R] 데이터 필터링 10가지 방법 (feat. tidyverse)
dplyr::filter() 사용법
- df %>% filter(col_name %in% c('value1', 'value2', 'value3', ...)) # include
- df %>% filter(!col_name %in% c('value1', 'value2', 'value3', ...)) # exclude
값이 들어있지 않은 데이터 필터링하기
1개 컬럼 기준
이번 설명에 사용되는 데이터는 아래와 같습니다. 4개의 컬럼으로 구성된 데이터 프레임(data.frame)이며, 1개의 명목형 변수와 3개의 수치형 변수로 구성되어 있습니다.
df <-
data.frame(
team = c('P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8'),
points = c(110, 120, 80, 16, 105, 185, 112, 112),
assists = c(133, 128, 131, 139, 134, 55, 66, 135),
rebounds = c(18, 18, 14, 13, 12, 15, 17, 12)
)
df
team points assists rebounds 1 P1 110 133 18 2 P2 120 128 18 3 P3 80 131 14 4 P4 16 139 13 5 P5 105 134 12 6 P6 185 55 15 7 P7 112 66 17 8 P8 112 135 12
해당 데이터에서 team
이 P1
또는 P2
이
df %>%
filter(!team %in% c('P1', 'P2'))
team points assists rebounds 1 P3 80 131 14 2 P4 16 139 13 3 P5 105 134 12 4 P6 185 55 15 5 P7 112 66 17 6 P8 112 135 12
2개 이상 컬럼 기준
이번 설명에 사용되는 데이터는 아래와 같습니다. 4개의 컬럼으로 구성된 데이터 프레임(data.frame)이며, 2개의 명목형 변수와 2개의 수치형 변수로 구성되어 있습니다.
df <-
data.frame(
team = c('P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8'),
points = c('A', 'A', 'B', 'B', 'C', 'C', 'C', 'D'),
assists = c(133, 128, 131, 139, 134, 55, 66, 135),
rebounds = c(18, 18, 14, 13, 12, 15, 17, 12)
)
df
team points assists rebounds 1 P1 A 133 18 2 P2 A 128 18 3 P3 B 131 14 4 P4 B 139 13 5 P5 C 134 12 6 P6 C 55 15 7 P7 C 66 17 8 P8 D 135 12
해당 데이터에서 team
이 P1
이 아니고, points
가 D
가
df %>%
filter(!team %in% c('P1') & !points %in% c('D'))
team points assists rebounds 1 P2 A 128 18 2 P3 B 131 14 3 P4 B 139 13 4 P5 C 134 12 5 P6 C 55 15 6 P7 C 66 17
마무리
R에서 데이터 필터링 방법은 상황 및 데이터에 따라 다양한 해결법이 존재(e.g. [R] 데이터 필터링 10가지 방법 (feat. tidyverse)합니다. 이번 포스트에서 설명한 dplyr 패키지의 filter()
함수는 그 중 가장 많이 사용되는 함수이며,
관련 링크
[1] [R] 데이터 필터링 10가지 방법 (feat. tidyverse)
[2] dplyr 패키지