R을 사용할 때 데이터프레임을 자유자재로 다루는 것은 아주 중요해서
여러 글에 나눠서 연습했던 내용을 업로드 하고자 한다.
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")
★ 예시문제 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)
# 앞에서 했던 방식을 활용할 수 있다.
※ 참고: 코드 예시는 해당 함수를 활용하기 위한 방법으로 제시한 것입니다. 따라서 다른 방법이 존재할 수 있습니다.
'[R] 연습' 카테고리의 다른 글
[R] 데이터 정제하기 (결측치편) (0) | 2021.12.01 |
---|---|
[R] dplyr 패키지 활용하기 (4편) (0) | 2021.11.30 |
[R] dplyr 패키지 활용하기 (3편) (0) | 2021.11.29 |
[R] 빅데이터 분석기사 예시 문제로 연습하기 (0) | 2021.11.28 |
[R] dplyr 패키지 활용하기 (2편) (0) | 2021.11.27 |