Dplyr을 사용하여 특정 문자열이 포함된 행을 필터링하는 방법


특정 문자열을 포함하는 R의 데이터 프레임에서 행을 필터링하려는 경우가 종종 있습니다. 다행히 dplyr 패키지의 filter() 함수와 Base R의 grepl() 함수를 사용하면 이 작업을 쉽게 수행할 수 있습니다.

이 튜토리얼에서는 다음 데이터 프레임을 사용하여 이러한 함수를 실제로 사용하는 몇 가지 예를 보여줍니다.

 #create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#view data frame
df

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12
5 Center 32 11

예 1: 특정 문자열이 포함된 행 필터링

다음 코드는 특정 문자열이 포함된 행을 필터링하는 방법을 보여줍니다.

 #load dplyr package
library(dplyr)

#filter rows that contain the string 'Guard' in the player column
df %>% filter ( grepl ('Guard', player))

   player points rebounds
1 P Guard 12 5
2 S Guard 15 7

관련 항목: R의 grep()과 grepl() 비교: 차이점은 무엇입니까?

예 2: 하나 이상의 문자열이 포함된 행 필터링

다음 코드는 플레이어 열에 “Guard” 또는 “Forward”가 포함된 행을 필터링하는 방법을 보여줍니다.

 #filter rows that contain 'Guard' or 'Forward' in the player column
df %>% filter ( grepl ('Guard|Forward', player))

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12

다음 코드는 판독기 열에 “P” 또는 “Center”가 포함된 행을 필터링하는 방법을 보여줍니다.

 #filter rows that contain 'P' or 'Center' in the player column
df %>% filter ( grepl ('P|Center', player))

     player points rebounds
1 P Guard 12 5
2 P Forward 22 12
3 Center 32 11

예시 3: 특정 문자열이 포함된 행 필터링

다음 코드는 플레이어 열에 “Guard”가 포함된 행을 필터링(즉, 제거)하는 방법을 보여줍니다.

 #filter out rows that contain 'Guard' in the player column
df %>% filter (! grepl ('Guard', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12
3 Center 32 11

다음 코드는 플레이어 열에 “Guard” 또는 “Center”가 포함된 행을 필터링(즉, 제거)하는 방법을 보여줍니다.

 #filter out rows that contain 'Guard' or 'Center' in the player column
df %>% filter (! grepl ('Guard|Center', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12

여기에서 더 많은 R 튜토리얼을 찾을 수 있습니다.

의견을 추가하다

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