[R] 연습

[R] dplyr 패키지 활용하기 (1편)

Simon Yoon 2021. 11. 26. 23:01

R을 사용할 때 데이터프레임을 자유자재로 다루는 것은 아주 중요해서

여러 글에 나눠서 연습했던 내용을 업로드 하고자 한다.

 

ggplot2의 mpg 데이터 일부


Q. 데이터 프레임에서 특정 조건에 맞는 행만 추출하고 싶다면?

A. filter() 함수를 사용하자.

 

# dplyr 패키지와 예시 데이터프레임 불러오기

library(dplyr)

mpg.df <- as.data.frame(ggplot2::mpg)

 

아까와 같은 데이터프레임에서 displ 변수 값이 4 이하인 데이터만 뽑아서 보고 싶다면, 다음과 같이 작성하면 된다.

under4 <- mpg.df %>% filter(displ <= 4)

 

혹은 manufacturer가 "ford"인 데이터만 추출하자면, 다음과 같이 작성하면 된다.

ford <- mpg.df %>% filter(manufacturer == "ford")

 

제조사가 포드(ford)인 데이터만 추출한 경우

★ 예시문제 1)

제조사(manufacturer)가 "chevrolet", "ford"인 데이터별로 도시연비(cty) 평균을 구하시오.

 

예시답안)

ford <- mpg.df %>% filter(manufacturer == "ford")

chev <- mpg.df %>% filter(manufacturer == "chevrolet")

mean(ford$cty)

mean(chev$cty)

# 조건에 맞는 두 개의 데이터 셋을 만들어서 간단하게 계산할 수 있다.

 

★ 예시문제 2)

제조사(manufacturer)가 "ford"인 데이터에서, class가 "subcompact"인 자동차의 도시연비(cty) 평균을 알고싶어요.

 

예시답안)

ford <- mpg.df %>% filter(manufacturer == "ford" & class == "subcompact")

mean(ford$cty)

# 조건이 여러 개여도 활용할 수 있다.


Q. 데이터 프레임에서 특정 열만 추출하고 싶다면?

A. select() 함수를 활용하자.

 

원래의 mpg 데이터프레임에서 drv, cty, hwy 변수만 보고 싶다면, 다음과 같이 작성하면 된다.

mpg.df %>% select(drv, cty, hwy)

 

옆에 있는 그림과 같은 결과를 얻을 수 있다.

 

 

★ 예시문제 3)

mpg 데이터에서 manufacturer, class, cty 변수만으로 새로운 데이터프레임을 생성하고,

manufacturer가 "toyota"이고 class가 "suv"인 자동차들의 cty 평균 값을 구하시오.

 

예시답안)

mcc <- mpg.df %>% select(manufacturer, class, cty)

toyota <- mcc %>% filter(manufacturer == "toyota" & class == "suv")

mean(toyota$cty)

# 앞에서 했던 방식을 활용할 수 있다.

 

 

※ 참고: 코드 예시는 해당 함수를 활용하기 위한 방법으로 제시한 것입니다. 따라서 다른 방법이 존재할 수 있습니다.