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