[R] 5. 데이터 전처리 - dplyr 패키지(1)
# 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() 평균을 구한다.