혼자서해보기1

Q1

library(dplyr)
## 
## 다음의 패키지를 부착합니다: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
mpg <- as.data.frame(ggplot2::mpg)
displ1 <- mpg %>% filter(displ<=4) 
displ2 <- mpg %>% filter(displ>=5)
mean(displ1$hwy)
## [1] 25.96319
mean(displ2$hwy)
## [1] 18.07895

displ이 4이하인 자동차의 hwy가 더 높음

Q2

audi <- mpg %>% filter(manufacturer=="audi")
toyota <- mpg %>% filter(manufacturer=="toyota")
mean(audi$cty)
## [1] 17.61111
mean(toyota$cty)
## [1] 18.52941

Q3

group <- mpg %>% filter(manufacturer %in% c("chevrolet","ford","honda"))
mean(group$hwy)
## [1] 22.50943

혼자서해보기2

Q1

mpg_new <- mpg %>% select(class,cty)
head(mpg_new)
##     class cty
## 1 compact  18
## 2 compact  21
## 3 compact  20
## 4 compact  21
## 5 compact  16
## 6 compact  18

Q2

mpg_suv <- mpg_new %>% filter(class=="suv")
mpg_compact <- mpg_new %>% filter(class=="compact")
mean(mpg_suv$cty)
## [1] 13.5
mean(mpg_compact$cty)
## [1] 20.12766

class가 “compact”인 자동차의 cty가 더 높음

혼자서해보기3

Q1

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

혼자서해보기4

Q1

mpg_copy <- mpg
mpg_copy <- mpg_copy %>% mutate(total=cty+hwy)

Q2

mpg_copy <- mpg_copy %>% mutate(mean=total/2)

Q3

mpg_copy %>% 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

mpg %>% mutate(total=cty+hwy,
               mean=total/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

혼자서해보기5

Q1

mpg %>% group_by(class) %>% 
  summarise(mean_cty=mean(cty))
## # A tibble: 7 × 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

mpg %>% group_by(class) %>% 
  summarise(mean_cty=mean(cty)) %>% 
  arrange(desc(mean_cty))
## # A tibble: 7 × 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

mpg %>% group_by(manufacturer) %>% 
  summarise(mean_hwy=mean(hwy)) %>% 
  arrange(desc(mean_hwy)) %>% 
  head(3)
## # A tibble: 3 × 2
##   manufacturer mean_hwy
##   <chr>           <dbl>
## 1 honda            32.6
## 2 volkswagen       29.2
## 3 hyundai          26.9

Q4

mpg %>% filter(class=="compact") %>% 
  group_by(manufacturer) %>% 
  summarise(count=n()) %>% 
  arrange(desc(count))
## # A tibble: 5 × 2
##   manufacturer count
##   <chr>        <int>
## 1 audi            15
## 2 volkswagen      14
## 3 toyota          12
## 4 subaru           4
## 5 nissan           2

혼자서해보기6

Q1

fuel <- data.frame(fl = c("c", "d", "e", "p", "r"),
                   price_fl = c(2.35, 2.38, 2.11, 2.76, 2.22),
                   stringsAsFactors = F)
mpg <- left_join(mpg,fuel, by="fl")

Q2

mpg %>% select(model,fl,price_fl) %>% 
  head(5)
##   model fl price_fl
## 1    a4  p     2.76
## 2    a4  p     2.76
## 3    a4  p     2.76
## 4    a4  p     2.76
## 5    a4  p     2.76