Big Data/R

[R] 5. 데이터 전처리 - dplyr 패키지(1)

nanee_ 2021. 6. 15. 03:04
728x90
반응형
SMALL

# dplyr 패키지

Hadley wickham가 작성한 데이터 처리에 특화된 R 패키지.

*plyr 패키지 : 모든 함수가 R로 작성되어서 처리속도가 느리다.

하지만, dplyr은 C++로 작성되어서 불필요한 함수를 불러오지 않기 때문에 매우 빠른 처리 속도를 자랑한다.

 

 

# dplyr 함수

- 데이터프레임을 처리하는 함수군

filter() 행 추출
select() 열 추출
arrange() 정렬
mutate() 변수 추가
summarise() 통계치 산출
group_by() 집단별로 나누기
left_join() 데이터 합치기(열)
bind_rows() 데이터 합치기(행)

 

 

- 사용법

install.packages("dplyr")
library(dplyr)

 

 

 

# 조건에 맞는 데이터 추출하기

데이터프레임 형태로 위의 자료가 exam 이라는 변수에 담겨져 있다.

 

 

 

- head()

: 상위 6개 데이터만 추출

head(exam)

 

 

 

- class가 1인 경우에만 추출

exam %>% filter(class == 1)

** %>% (파이프연산자, pipe operator) 

: 함수를 연결하는 기능

 

 

 

- class가 1이 아닌 경우에만 추출

exam %>% filter(class != 1)

 

 

 

- math 가 50을 초과한 경우만 추출

exam %>% filter(math > 50)

 

 

 

- english 가 80 이상인 경우만 추출

exam %>% filter(english >= 80)

 

 

 

# 여러 조건을 충족하는 행 추출하기

- class 가 1 이면서 math 가 50 이상인 경우만 추출

exam %>% filter(class = 1 & math >= 50)

 & (and) : 두 조건이 모두 만족해야한다.

 

 

 

- math 가 90 이상이거나 english 가 90 이상인 경우만 추출

exam %>% filter(math >= 90 | english >= 90)

 | (or) : 두 조건 중 하나만 만족하면 된다.

 

 

 

- class 가 1, 3, 5 에 해당하면 추출

# ver1) | (or)
exam %>% filter(class = 1 | class = 3 | class = 5)

# ver2) %in%
exam %>% filter(class %in% c(1, 3, 5))

* %in% (매치 연산자, Match Operator)

: 변수 값이 지정한 목록에 해당하는지 확인하는 기능

 

 

 

- class 가 1 인 행의 math 평균

class1 <- exam %>% filter(class)
mean(class1$math)

[1] 46.25

 

class == 1 인 데이터만 추출해서 새로운 변수에 할당해준 뒤, $ 로 math 열로 접근해서 mean() 평균을 구한다.

728x90
반응형
LIST