4.1 들어가는 말

데이터 프레임(dataframe)을 위한 데이터 전처리, 조작(data pre-processing, data manipulation)을 쉽고! 빠르게! 할 수 있도록 해주는 dplyr 패키지에 대해서 알아보겠습니다.

R help에 검색해보면 dplyr 패키지를 아래와 같이 소개하고 있다.

dplyr유연한 데이터 조작의 문법을 제공합니다. 이것은 plyr의 차기작으로서, 데이터 프레임을 집중적으로 다루는 툴이다

dplyr provides a flexible grammar of data manipulation. It’s the next iteration of plyr, focused on tools for working with data frames (hence the d in the name)

데이터 조작을 위한 문법으로 체계화를 해서 한번 배워놓으면 쉽다는 점과 더불어, C언어로 만들어서 매우 빠르다는 점도 dplyr 패키지의 크나큰 장점 중의 하나이다.

그래프/시각화를 문법으로 승화시켜서 체계를 잡아놓은 “ggplot2” 패키지 ( “ggplot is an implementation of the grammer of Graphics in R”)가 있다. 이 ggplot2를 만든 그 유명한 Hadley Wickhamdplyr 패키지도 만들었다.

아래에 소개한 것처럼, https://www.r-bloggers.com/ 에 소개되어 있는 Hadley 의 인터뷰를 보면, 기존 통계학에서는 데이터 전처리(Data munging and manipulation)를 “내 일이 아니야”라고 무시했었다고 한다. 그런데 Hadley Wickham이 보기에는 ’모델링’과 ’시각화’로 부터 통찰을 끄집에 내는데 있어서 데이터 조작, 전처리가 매우 중요하고 또 어려운 영역이라고 보았고, Hadley가 직접 나서서 이를 도와줄 수 있는 R packages를 만들었다는 것이다.

“Hadley Wickham on why he created all those R packages”

July 27, 2015 By David Smith

“There are definitely some academic statisticians who just don’t understand why what I do is statistics, but basically I think they are all wrong . What I do is fundamentally statistics. The fact that data science exists as a field is a colossal failure of statistics.

To me, that is what statistics is all about. It is gaining insight from data using modelling and visualization. Data munging and manipulation is hard and statistics has just said that’s not our domain.”

* source : https://www.r-bloggers.com/hadley-wickham-on-why-he-created-all-those-r-packages/

Hadley Wickham의 Github repository 주소는 https://github.com/hadley?tab=repositories 이다.

여기 가보면 엄청나게 많은 R 패키지들에 입이 쩍 벌어진다.

만약에 노벨상에 R community에 기여한 공로를 치하하는 상으로 ’노벨 R 상’이 있다면 Hadley Wickham이 그 첫번째 수상자가 된다고 해도 전혀 이상할게 없을 정도로 정말 R의 확산에 지대한 공헌을 한 것이다.

ggplot2시각화/그래프에 관한한 우리를 실망시키지 않았듯이, dplyr 또한 데이터 전처리에 관한한 coverage의 방대함과 문법의 명료함이 우리를 매료시킬 것이라고 생각하며, 하나씩 예를 들어 설명 알아보기로 한다.

아래의 설명은 browseVignettes(package = "dplyr") 치면 팝업으로 나오는 “Introduction to dplyr” HTML 페이지를 참조하였습니다.

4.1.1 데이터 전처리란?

데이터 전처리란 작업할 raw data를 구성하는 관측치와 변수들을 제거, 수정 혹은 추가하여 최종적으로 분석에 사용할 Data Set을 만드는 과정을 말한다.

예를 몇 가지 들자면 다음과 같다.

  • 성별(sex)0, 1로 기입해 놓은 경우 보기 좋게 male, female변경.
  • 가구 회사에서 의자와 책상을 만들기 위해서 신장과 체중만 있으면 되는 경우, 그 외에 불필요한 변수들(주거지, 최종 학력 등)을 제거하는 것.
  • 학생들의 교육 성취도 조사를 하려는데 1년치 자료만 있는 경우 과거 기록도 추가하는 경우

4.1.2dplyr 패키지 인가?

dplyr 패키지의 가장 큰 장점은 %>%(파이프, Pipe) 연산자라고 할 수 있다. 전처리 외에도 파이프 연산자는 가독성을 높여 준다.

수학적으로 말하자면 합성함수 o(circle)와 유사한 기능을 한다.

다만 둘의 차이점은 합성함수는 (f o g)(x) == f(g(x)) 처럼 뒤에서부터 앞의 순서로 계산하지만, dplyr 의 파이프 연산자는 왼쪽에서 오른쪽 순서로 진행된다.

DataFrame %>% function1() %>% function2()