연습문제 133p

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

연습문제 138p

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의 평균이 더 높은것을 알 수 있습니다.

연습문제 141p

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

연습문제 144p

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

연습문제 150p

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