맛동산

dplyr패키지 - dataframe 핸들링하기 좋을듯 본문

머신러닝/R

dplyr패키지 - dataframe 핸들링하기 좋을듯

오지고지리고알파고포켓몬고 2017. 3. 26. 21:59

install.packages(c("dplyr", "hflights"))

install.packages("dplyr")

library(dplyr)

library(hflights) 


# 1. tbl_df() 함수 : 데이터셋 화면창 안에서 한 눈에 파악할 수 있는 데이터 구성

hflights_df <- tbl_df(hflights)

hflights_df


# 2. filter(dataframe, 조건1, 조건2)함수를 이용한 데이터 추출

# 1월 1일 데이터 추출

filter(hflights_df, Month == 1 & DayofMonth == 1) # , == AND(&)  # DB의 쿼리문을 연상하시면 됩니다

# subset과 유사한느낌

asdf <- data.frame(filter(hflights_df, Month == 1 & DayofMonth == 1))

# 다시 dataframe로 바꿀수있음


# 3. arrange()함수를 이용한 정렬(1.년도, 2.월, 3.도착시간) - 오름차순 

arrange(hflights_df, Year, Month, ArrTime )


# Month 기준 내림차순 정렬 - desc(변수)

arrange(hflights_df, desc(Month))


# 4. select()함수를 이용한 열 조작

select(hflights_df, Year, Month, DayOfWeek, ArrDelay)  # 4개 칼럼 선택


# 칼럼의 범위 지정 : Year~DayOfWeek 선택

select(hflights_df, Year:DayOfWeek)


# 칼럼의 범위 제외 : Year부터 DayOfWeek 제외

select(hflights_df, -(Year:DayOfWeek))


# 5. mutate() 함수를 이용하여 칼럼 추가(변형-파생변수 만들기)

# ref를 직접 변환하진 않음, 담을곳이 필요함

# 파생변수 : 도착지연 - 출발지연 시간 

mutate(hflights_df, diff = ArrDelay - DepDelay, #가장 쉽게 파생변수 만드는법은 사칙연산이죵 

       diff_per_hour = diff/(AirTime/60) )



# 새로 추가된 열을 select() 함수로 보기

select(mutate(hflights_df, diff = ArrDelay - DepDelay, 

              diff_per_hour = diff/(AirTime/60) ), 

       Year, Month, ArrDelay, DepDelay, diff, diff_per_hour)


# 6. summarise()함수를 이용한 집계 - 출발지연시간 평균 

summarise(hflights_df, cnt = n(), delay = mean(DepDelay, na.rm = TRUE))

# nrow(dataset)과 같은기능 - n() # 음..? 이거 다시한번 봐야할듯

'머신러닝 > R' 카테고리의 다른 글

함수 사용시 결측치 처리(na.omit, ifelse)  (0) 2017.03.26
pylr패키지 ddply  (0) 2017.03.26
plyr패키지 join  (0) 2017.03.26
seq, sample, rowMeans, rowSums  (0) 2017.03.26
논리연산자, ifelse, table  (0) 2017.03.26
Comments