Import stock prices

stocks <- tq_get(c("AAPL", "NFLX","VRTX"),
                 get = "stock.prices",
                 from = "2016-01-01",
                 to = "2017-01-01")
stocks
## # A tibble: 756 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 AAPL   2016-01-04  25.7  26.3  25.5  26.3 270597600     23.9
##  2 AAPL   2016-01-05  26.4  26.5  25.6  25.7 223164000     23.3
##  3 AAPL   2016-01-06  25.1  25.6  25.0  25.2 273829600     22.9
##  4 AAPL   2016-01-07  24.7  25.0  24.1  24.1 324377600     21.9
##  5 AAPL   2016-01-08  24.6  24.8  24.2  24.2 283192000     22.0
##  6 AAPL   2016-01-11  24.7  24.8  24.3  24.6 198957600     22.4
##  7 AAPL   2016-01-12  25.1  25.2  24.7  25.0 196616800     22.7
##  8 AAPL   2016-01-13  25.1  25.3  24.3  24.3 249758400     22.1
##  9 AAPL   2016-01-14  24.5  25.1  23.9  24.9 252680400     22.6
## 10 AAPL   2016-01-15  24.0  24.4  23.8  24.3 319335600     22.0
## # ℹ 746 more rows

Plot stock prices

stocks %>%
    
    ggplot(aes(x = date, y = adjusted, color = symbol)) +
    geom_line()

Apply the dplyr verbs you learned in chapter 5

filter Rows

stocks %>% filter(adjusted > 24)
## # A tibble: 636 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 AAPL   2016-03-16  26.2  26.6  26.1  26.5 153214000     24.2
##  2 AAPL   2016-03-17  26.4  26.6  26.2  26.5 137682800     24.1
##  3 AAPL   2016-03-18  26.6  26.6  26.3  26.5 176820800     24.2
##  4 AAPL   2016-03-21  26.5  26.9  26.3  26.5 142010800     24.2
##  5 AAPL   2016-03-22  26.3  26.8  26.3  26.7 129777600     24.4
##  6 AAPL   2016-03-23  26.6  26.8  26.5  26.5 102814000     24.2
##  7 AAPL   2016-03-24  26.4  26.6  26.2  26.4 104532000     24.1
##  8 AAPL   2016-03-28  26.5  26.5  26.3  26.3  77645600     24.0
##  9 AAPL   2016-03-29  26.2  26.9  26.2  26.9 124760400     24.6
## 10 AAPL   2016-03-30  27.2  27.6  27.1  27.4 182404400     25.0
## # ℹ 626 more rows

Arrange rows

arrange(stocks, desc(high), desc(low))
## # A tibble: 756 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 NFLX   2016-10-24  127.  129.  126.  127. 15980700     127.
##  2 NFLX   2016-12-28  129.  129.  126.  126.  4389200     126.
##  3 NFLX   2016-12-27  126.  129.  126.  128.  5288200     128.
##  4 NFLX   2016-10-28  126.  129.  126.  127.  7077300     127.
##  5 NFLX   2016-10-26  126.  129.  126.  127.  8602400     127.
##  6 NFLX   2016-10-27  127.  128.  126.  126.  6914200     126.
##  7 NFLX   2016-10-25  127.  128.  126.  127.  8253900     127.
##  8 NFLX   2016-10-21  122.  128.  122.  128. 18832400     128.
##  9 NFLX   2016-12-21  126.  128.  125   126.  6514800     126.
## 10 NFLX   2016-12-22  127.  128.  125.  126.  4160700     126.
## # ℹ 746 more rows

select columns

select(stocks, date, high, low, volume)
## # A tibble: 756 × 4
##    date        high   low    volume
##    <date>     <dbl> <dbl>     <dbl>
##  1 2016-01-04  26.3  25.5 270597600
##  2 2016-01-05  26.5  25.6 223164000
##  3 2016-01-06  25.6  25.0 273829600
##  4 2016-01-07  25.0  24.1 324377600
##  5 2016-01-08  24.8  24.2 283192000
##  6 2016-01-11  24.8  24.3 198957600
##  7 2016-01-12  25.2  24.7 196616800
##  8 2016-01-13  25.3  24.3 249758400
##  9 2016-01-14  25.1  23.9 252680400
## 10 2016-01-15  24.4  23.8 319335600
## # ℹ 746 more rows

Add columns

mutate(stocks,
       gain = high - low)
## # A tibble: 756 × 9
##    symbol date        open  high   low close    volume adjusted  gain
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl> <dbl>
##  1 AAPL   2016-01-04  25.7  26.3  25.5  26.3 270597600     23.9 0.843
##  2 AAPL   2016-01-05  26.4  26.5  25.6  25.7 223164000     23.3 0.860
##  3 AAPL   2016-01-06  25.1  25.6  25.0  25.2 273829600     22.9 0.625
##  4 AAPL   2016-01-07  24.7  25.0  24.1  24.1 324377600     21.9 0.925
##  5 AAPL   2016-01-08  24.6  24.8  24.2  24.2 283192000     22.0 0.587
##  6 AAPL   2016-01-11  24.7  24.8  24.3  24.6 198957600     22.4 0.430
##  7 AAPL   2016-01-12  25.1  25.2  24.7  25.0 196616800     22.7 0.463
##  8 AAPL   2016-01-13  25.1  25.3  24.3  24.3 249758400     22.1 0.972
##  9 AAPL   2016-01-14  24.5  25.1  23.9  24.9 252680400     22.6 1.19 
## 10 AAPL   2016-01-15  24.0  24.4  23.8  24.3 319335600     22.0 0.587
## # ℹ 746 more rows

summarise with groups

stocks %>%
    group_by(date)
## # A tibble: 756 × 8
## # Groups:   date [252]
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 AAPL   2016-01-04  25.7  26.3  25.5  26.3 270597600     23.9
##  2 AAPL   2016-01-05  26.4  26.5  25.6  25.7 223164000     23.3
##  3 AAPL   2016-01-06  25.1  25.6  25.0  25.2 273829600     22.9
##  4 AAPL   2016-01-07  24.7  25.0  24.1  24.1 324377600     21.9
##  5 AAPL   2016-01-08  24.6  24.8  24.2  24.2 283192000     22.0
##  6 AAPL   2016-01-11  24.7  24.8  24.3  24.6 198957600     22.4
##  7 AAPL   2016-01-12  25.1  25.2  24.7  25.0 196616800     22.7
##  8 AAPL   2016-01-13  25.1  25.3  24.3  24.3 249758400     22.1
##  9 AAPL   2016-01-14  24.5  25.1  23.9  24.9 252680400     22.6
## 10 AAPL   2016-01-15  24.0  24.4  23.8  24.3 319335600     22.0
## # ℹ 746 more rows
    summarise(stocks, delay = mean(high, na.rm = TRUE)) %>%
    arrange(delay)
## # A tibble: 1 × 1
##   delay
##   <dbl>
## 1  73.3