R-dplyr-아이콘
dplyr

dpylr은 R에서 데이터 가공을 위해 가장 많이 사용되는 패키지입니다. 데이터 가공이 시간도 많이 필요하고 자주 하는 작업인만큼, 빠르고 쉽게 하기 위한 문법도 많고 패키지도 다양합니다. R에서는 dplyr이 가장 유명하고 효율적인 패키지로 알려져 있습니다. dplyr 함수 및 사용방법을 알아보았습니다.

 

 

dplyr은 크게 5가지의 함수로 이루어져 있습니다. 예제의 df는 데이터 프레임이고, co1,col2 등은 칼럼입니다.

함수 이름 내 용 예제
select 열선택  - select( df, col1, col2 )
 - select( df, -col3 )
 - select( df , A:Z, contains("TAXI"), contains("Delay") )
filter 행조건  - filter( select(A,B,C), c==60 )
 - filter( df, 조건1, 조건2)  :  조건1 and 조건2
 - filter( df, 조건1 | 조건2)  :  조건1 or 조건2
 mutate  신규 칼럼 생성 - mutate( a = b + c )
 group_by 그룹핑
 summarize  요약값

 

 

앞자를 따서 외우면 쉽다고 해서 sfmgs로 외워보기로 했습니다. 각각의 영어 단어의 뜻이 어떤 작업을 하는지 의미하기 때문에 영어단어만 알면 작업하기는 어렵지 않습니다.

 

그리고 헷갈리는 것 중에 하나가 칼럼명에 따옴표를 넣어야 하는지 말지입니다. dplyr은 칼럼명에 따옴표를 넣지 않습니다. 이게 헷갈렸는데, 플라이(fly)니까 따옴표를 날려 버렸다고 생각해보기로 했습니다.

 

dplyr은 위와 같이 사용해도 되지만 파이프라인 %>% 을 이용하면 이해하기가 더 쉽습니다. 파이프라인은 앞에 작업이 끝나면 다음 작업으로 간다는 것으로 이해하면 알기 쉽습니다.

df %>%
    select ~ %>%
    filter ~%>%
    group_by %>%
    summarize

 

예를 들어 위와 같이 작성하면, df에서 칼럼을 선택하고 조건을 필터한 다음에 그룹핑을 해서 요약값을 만드는 것입니다. 몇 번 사용해보면 흐름이 직관적이기 때문에 이해하기 쉽습니다. %>%을 입력하기가 어려운데, 이는 단축키를 사용하면 됩니다.

 

 

위의 함수가 기본 함수라고 애기는 했지만, 실제 사용하다보면 필요한 기능들이 더 있다. 이에 추가함수나 사용 예제들을 추가해보았습니다.

필요 작업 함수 설명과 예제
group 단위 순위매기기 row_numer   temp3 <- temp2 %>%
      mutate( rank=row_number() ) %>% 
      group_by( group_new )

  row_number는 행의 순서를 리턴해주는 함수인데, 위와 같이 사용해서 그룹단위 순위를 매길 수 있다.
NA값 제거 is.na   df %>%
      filter( !is.na(a) )
정렬 arrange   job_nodup -> job_nodup %>%
      arrange( col1, desc(col2) )  
중복제거 distinct   df %>%
    distinct( col1, col2 )
 행갯수 세기 tally    df %>%
      filter( col1 == "A" ) %>%
      tally()

 

문법이라는 게 자주 사용하다보면 자연스럽게 익숙해는데 억지로 외우려니 힘든 부분이 있습니다. 우선 이렇게 이해해보고 이것저것하다보면 더 빠르게 익힐 수 있지 않을까 합니다. 빠른 시간에 R을 배워서 하려고 하니 고민이 많아집니다. dplyr이 사용하기 어렵다면 data.table의 함수를 사용해도 좋습니다.

 

dplyr의 함수 및 사용방법을 알아보았습니다. 무엇보다 많이 자주 사용하는 것이 숙달되는 데 가장 좋겠지만, 어떤 일이든 시간이 문제네요.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기