Practice makes perfect

[R] dplyr 패키지 본문

빅데이터/R

[R] dplyr 패키지

kerpect 2020. 7. 3. 12:37
728x90
반응형
SMALL

 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()

728x90
반응형
LIST

'빅데이터 > 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