Q1.displ이 4이하인 자동차와 5이상인 자동차 중 어떤 자동차의 hwy가 평균적으로 높은지 알아보세요.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
mpg <- as.data.frame(ggplot2::mpg)#ggolot2를 데이터 프레임 형식으로 불러옵니다.
mpg %>% filter(displ <=4) ->dis4#4이하인 경우를 구하여 dis4로 출력합니다.
mpg %>% filter(displ >=5) ->dis5#5이상인 경우를 구하여 dis5로 출력합니다.
mean(dis4$hwy)#dis4의 평균을 구합니다.
## [1] 25.96319
mean(dis5$hwy)#dis5의 평균을 구합니다.
## [1] 18.07895
displ이 4이하인 자동차의 hwy가 평균적으로 더 높은것을 알 수 있습니다.
Q2. audi와 toyota중 어느 manufacturer의 cty가 평균적으로 높은지 알아보세요.
mpg %>% filter(manufacturer=="audi") ->mpg_audi
mpg %>% filter(manufacturer=="toyota") ->mpg_toyota
audi와 toyota를 골라내줍니다.
mean(mpg_audi$cty)#audi의 평균을 구합니다.
## [1] 17.61111
mean(mpg_toyota$cty)#toyota의 평균을 구합니다.
## [1] 18.52941
toyota가 평균적으고 더 높은것을 알 수 있습니다.
Q3. chevorlet, ford, honda 자동차의 데이터를 추출한 후 hwy 전체 평균을 구하세요.
mpg %>% filter(manufacturer %in% c("chevolet","ford","honda")) ->mpg_cfh#세개의 회사를 mpg_cfh로 추출합니다.
mean(mpg_cfh$hwy)#hwy의 평균을 구합니다.
## [1] 22.85294
Q1. mpg데이터에서 class, city 변수를 추출해 새로운 데이터를 만드세요. 새로만든 데이터의 일부를 출력해 두 변수로만 구성되어 있는지 확인해보세요.
mpg %>% select(class,cty) ->mpg_cc
head(mpg_cc)
## class cty
## 1 compact 18
## 2 compact 21
## 3 compact 20
## 4 compact 21
## 5 compact 16
## 6 compact 18
Q2. class가 suv인 자동차와 compact인 자동차 중 어떤 자동차의 cty평균이 더 높은지 알아보세요.
mpg %>% filter(class=="suv")->mpg_s
mpg %>% filter(class=="compact")->mpg_c
mean(mpg_s$cty)#suv의 평균
## [1] 13.5
mean(mpg_c$cty)#compact의 평균
## [1] 20.12766
compact의 평균이 더 높은것을 알 수 있습니다.
Q1. audi에서 생산한 자동차 중 hwy가 1~5위에 해당하는 자동차의 데이터를 출력하세요.
mpg %>% filter(manufacturer=="audi") %>% arrange(desc(hwy)) %>% head(5)
## manufacturer model displ year cyl trans drv cty hwy fl class
## 1 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
## 2 audi a4 2.0 2008 4 auto(av) f 21 30 p compact
## 3 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
## 4 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
## 5 audi a4 quattro 2.0 2008 4 manual(m6) 4 20 28 p compact
Q1. mpn()데이터 복사본을 만들고 cty와 hwy를 더한 합산 연비 변수를 추가하세요.
mpg->mpg_new#mpg의 복사본을 만듭니다.
mpg_new %>% mutate(total=cty+hwy) ->mpg_new
head(mpg_new)
## manufacturer model displ year cyl trans drv cty hwy fl class total
## 1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact 47
## 2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact 50
## 3 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact 51
## 4 audi a4 2.0 2008 4 auto(av) f 21 30 p compact 51
## 5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact 42
## 6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact 44
Q2. 앞에서 만든 합산 연비 변수를 2로 나눠 평균 연비 변수를 추가하세요.
mpg_new %>% mutate(mean=(total/2)) -> mpg_new
mpg_new %>% arrange(desc(mean)) %>% head(3)
## manufacturer model displ year cyl trans drv cty hwy fl class
## 1 volkswagen new beetle 1.9 1999 4 manual(m5) f 35 44 d subcompact
## 2 volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compact
## 3 volkswagen new beetle 1.9 1999 4 auto(l4) f 29 41 d subcompact
## total mean
## 1 79 39.5
## 2 77 38.5
## 3 70 35.0
Q4. 1~3번 문제를 해결할 수 있는 하나로 연결된 dplyr구문을 만들어 실행해 보세요.
mpg %>% mutate(total=cty+hwy, mean=(cty+hwy)/2) %>% arrange(desc(mean)) %>% head(3)
## manufacturer model displ year cyl trans drv cty hwy fl class
## 1 volkswagen new beetle 1.9 1999 4 manual(m5) f 35 44 d subcompact
## 2 volkswagen jetta 1.9 1999 4 manual(m5) f 33 44 d compact
## 3 volkswagen new beetle 1.9 1999 4 auto(l4) f 29 41 d subcompact
## total mean
## 1 79 39.5
## 2 77 38.5
## 3 70 35.0
Q1. class별 cty평균을 구해 보세요.
mpg %>% group_by(class) %>% summarise(mean_cty=mean(cty))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 7 x 2
## class mean_cty
## <chr> <dbl>
## 1 2seater 15.4
## 2 compact 20.1
## 3 midsize 18.8
## 4 minivan 15.8
## 5 pickup 13
## 6 subcompact 20.4
## 7 suv 13.5
Q2. cty평균이 높은 순으로 정렬해 출력해주세요.
mpg %>% group_by(class) %>% summarise(mean_cty=mean(cty)) %>% arrange(desc(mean_cty))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 7 x 2
## class mean_cty
## <chr> <dbl>
## 1 subcompact 20.4
## 2 compact 20.1
## 3 midsize 18.8
## 4 minivan 15.8
## 5 2seater 15.4
## 6 suv 13.5
## 7 pickup 13
Q3. hwy평균이 가장 높은 회사 세 곳을 출력하세요.
mpg %>% group_by(manufacturer) %>% summarise(mean_hwy=mean(hwy)) %>% arrange(desc(mean_hwy)) %>% head(3)
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 3 x 2
## manufacturer mean_hwy
## <chr> <dbl>
## 1 honda 32.6
## 2 volkswagen 29.2
## 3 hyundai 26.9
Q4. 각 회사별 compact차종 수를 내림차순으로 정렬해 출력하세요.
mpg %>% filter(class=="compact") %>% group_by(manufacturer) %>% summarise(count=n()) %>% arrange(desc(count))
## `summarise()` ungrouping output (override with `.groups` argument)
## # A tibble: 5 x 2
## manufacturer count
## <chr> <int>
## 1 audi 15
## 2 volkswagen 14
## 3 toyota 12
## 4 subaru 4
## 5 nissan 2