dplyr 패키지에 있는 함수 알아보기

 

많이 사용하는 함수 종류

dplyr 패키지 설치하기

library(dplyr)

 

filter() - 조건에 맞는 데이터만 추출하기

<1> dplyr 패키지를 로드한 후 csv_exam.csv 파일을 데이터 프레임으로 만들어 출력하기

exam <- read.csv("csv_exam.csv")
exam

<2> dplyr 패키지의 filter 함수를 이용하여 1반 학생들의 데이터만 추출하기

exam %>% filter(class==1)

<3> 같은 형식으로 2반 학생들의 데이터만 추출하기

exam %>% filter(class=2)

<4> 변수가 '특정 값이 아닌 경우'에 해당하는 데이터 추출하기

exam %>% filter(class != 1)  #1반이 아닌 학생만 추출

 

 

select() - 필요한 변수만 추출하기

<1> select() 이용하여 수학 점수만 추출하기

exam %>% select(math)

<2> select() 이용하여 여러 변수 추출하기

exam %>% select(class, math, english)

<3> 특정 변수 제외하기

exam %>% select(-english)

 

 

arrange() - 순서대로 정렬하기

<1> 오름차순으로 정렬하기

english 변수의 값을 기준으로 오름차순으로 정렬됨

<2> 내림차순으로 정렬하기

english 변수의 값을 기준으로 내림차순으로 정렬됨
쉼표를 사용하여 여러 변수 한 번에 정렬 가능

 

 

mutate() - 파생변수 추가하기★

<1> 파생변수 추가하기

세 과목의 점수를 모두 더한 total이라는 파생 변수 추가

<2> 여러 파생변수 한 번에 추가하기

+

세 과목 점수를 더한 total 변수의 상위 5개

 

summarise() - 요약하기

** summarise 함수에는 연속형 변수만 들어갈 수 있다. (주로 group_by 함수와 같이 사용)

group_by() - 집단별로 나누기

** group_by 함수에는 범주형 변수만 들어갈 수 있다.

 

 

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

<쉽게 배우는 R 데이터 분석 p.160>

문제 1. popadults 는 해당 지역의 성인 인구, poptotal은 전체 인구를 나타냅니다. midwest 데이터에 '전체 인구 대비 미성년 인구 백분율' 변수를 추가하세요.

total 이라는 새로운 변수 추가

 

문제 2. 미성년 인구 백분율이 가장 높은 상위 5개 country(지역)의 미성년 인구 백분율을 출력하시오.

문제 3. 다음과 같은 분류표의 기준에 따라 미성년 비율 등급 변수를 추가하고, 각 등급에 몇 개의 지역이 있는지 알아보세요.
library(ggplot2)
data <- data %>% mutate(level = ifelse(data$total >= 40, "large",
					ifelse(data$county > 30, "middle", "small")))
table(data$level)
qplot(data$level)

large middle small
   32    396     9

 

문제 4. popasian은 해당 지역의 아시아인 인구를 나타냅니다. '전체 인구 대비 아시아인 인구 백분율' 변수를 추가하고 하위 10개 지역의 state(주), county(지역), 아시아인 인구 백분율을 출력하세요.
data <- midwest %>%
	mutate(tot_asian = (popasian/poptotal)*100) %>%
    arrange(tot_asian) %>%
    select(state, county, tot_asian) %>%
    tail(10)
data

 

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

+ Recent posts