Practice makes perfect
[R] dplyr 패키지 본문
dplyr 패키지 활용
: 데이터를 분석에 필요한 형태로 만드는 데이터 전처리 관련 함수 제공 패키지
- plyr의 뼈대를 가지고 와서 추가적인 함수를 넣었으므로 그대로 적용한 개념은 아닙니다.
- 기존 plyr 패키지는 R 언어로 개발되었으나, dplyr 패키지는 C++ 언어로 개발되어 처리 속도를 개선하였습니다.
hflights 함수를 활용하여 설명하도록 하겠습니다.
<hflights>
2011년도 미국 휴스턴에서 출발하는 모든 비행기의 이착륙 기록이 수록된 것으로 227,496건의 이착륙 기록에대해 21개 항목을 수집한 데이터입니다.
① 예제
콘솔 창의 크기에 맞게 데이터 추출
- tbl_df() : 콘솔 창 안에서 한 눈으로 파악하기 - 데이터셋 화면창 크기 만큼 데이터 제공
hflights_df<-tbl_df(hflights)
hflights_df
② - 1 예제
조건에 맞는 데이터 필터링
filter(dataframe, 조건1, 조건2) 함수 이용 데이터 추출
- hflights_df를 대상으로 1월2일 데이터 추출하기
filter(hflights_df, Month == 1 & DayofMonth == 2)
#and(, or &) - Source: local data frame [678 x 21]
② - 2 예제
1월 혹은 2월 데이터 추출
filter(hflights_df, Month == 1 | Month == 2)
# or(|) - Source: local data frame [36,038 x 21]
② - 3 예제
1월 2일의 비행 시간
filter(hflights_df, Month == 1, DayofMonth == 2, AirTime >=300)
# Source: local data frame [6 x 21]
③ - 1 예제
컬럼으로 데이터 정렬
arrange() 함수를 이용한 오름차순 / 내림차순 정렬
년, 월, 출발시간, 도착시간 순으로 오름차순 정렬
arrange(hflights_df, Year, Month, DepTime, ArrTime)
오름차순은 넣어준 순서로 정렬해서 출력합니다.
③ - 2 예제
도착시간 내림차순 정렬
arrange(hflights_df, Year, Month, desc(DepTime), ArrTime)
④ - 1 예제
특정 컬럼의 데이터 읽어오기
select 함수 이용한 데이터 추출
hflights_df에서 년, 월, 출발시간, 도착 시간 컬럼 검색하기
select(hflights_df, Year, Month, DepTime, ArrTime) # 4개의 컬럼 선택
④ - 2 예제
컬럼의 범위 지정
Year ~ ArrTime 까지의 모든 컬럼이 지정
select(hflights_df, Year:ArrTime)
④ - 3예제
컬럼의 범위 제외
Year 부터 DayOfWeek 제외
select(hflights_df, -(Year:DayOfWeek))
⑤ 예제
데이터 셋 컬럼 추가
mutate() 함수를 이용하여 열 추가(변형)
출발 지연 시간(DepDelay)과 도착 지연 시간(ArrDelay)과의 차이를 계산하는 컬럼 추가하기
mutate(hflights_df, gain = ArrDelay - DepDelay, gain_per_hour= gain/(AirTime/60))
⑥ - 1 예제
요약 통계치 계산
summarise() 함수를 이용한 데이터 요약 출력
비행시간 평균 계산하기
summarise(hflights_df, avgAirTime = mean(AirTime, na.rm = T)) # NA 항목을 제외하고 계산
avgAirTime
-출력값-
<dbl>
108. - 평균 운행 시간.
⑥ - 2 예제
데이터 셋의 관측치 길이. 출발 지연 시간 평균 구하기
summarise(hflights_df, cnt = n(), delay=mean(DepDelay, na.rm = T))
- 출력값 -
cnt delay
<int> <dbl>
227496 9.44
- n() 개수를 출력줍니다.
- n(), sum(), mean(), sd(), var(), median() 등의 함수 사용-기초 통계량
⑥ - 3 예제
도착시간(ArrTime) 의 표준편차와 분산 계산하기
summarise(hflights_df, arrTimeSd=sd(ArrTime, na.rm = T), arriTimeVar = var(ArrTime, na.rm = T))
- 출력값-
arrTimeSd arriTimeVar
<dbl> <dbl>
472. 223163.
state 패키지 안에 분석과 관련된 함수를 담고 있습니다.
⑦ 예제
집단변수를 이용하여 그룹화하기
group_by(dataframe, 기준변수) 함수를 이용한 그룹화 - 데이터 프레임을 대상으로 기준 변수 로그룹화
planes <- group_by(hflights_df, TailNum) # TailNum : 항공기 일련번호
delay <- summarise(planes, count = n(), dist = mean(Distance, na.rm = T),
delay = mean (ArrDelay, na.rm = T))
delay <- filter(delay, count > 20 , dist < 2000)
install.packages("UsingR")
library(ggplot2) # ggplot2 : 고급 시각화(다양성) 기능
ggplot(delay,aes(dist,delay)) + geom_point(aes(size=count), alpha=1/2) +
geom_smooth() + scale_size_area()
'빅데이터 > R' 카테고리의 다른 글
[R] reshape2 패키지 (0) | 2020.07.03 |
---|---|
[R] 파이프 연산자(pipe) (0) | 2020.07.03 |
[R] plyr 패키지 (0) | 2020.07.02 |
[R] 연속변수(Continuous quantitative data) 시각화 (0) | 2020.07.02 |
[R] 이산변수 시각화 (0) | 2020.07.01 |