Import stock prices
stocks <- tq_get(c("GM", "VRTX", "MSFT"))
get = "stock.prices"
from = "2016-01-01"
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: 7,961 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 GM 2014-01-02 40.7 41.1 40.3 41.0 14763300 30.9
## 2 GM 2014-01-03 40.9 41.0 39 39.6 41426900 29.9
## 3 GM 2014-01-06 39.9 40.6 39.6 40.4 25063500 30.5
## 4 GM 2014-01-07 40.7 40.9 40.1 40.2 14156900 30.4
## 5 GM 2014-01-08 40.3 40.8 40.2 40.4 11342400 30.5
## 6 GM 2014-01-09 40.9 40.9 40.3 40.5 9790600 30.6
## 7 GM 2014-01-10 40.6 40.7 39.8 40.0 14596000 30.2
## 8 GM 2014-01-13 40.2 40.6 39.4 39.6 20993200 29.9
## 9 GM 2014-01-14 39.8 40.2 39.6 40.0 17389100 30.2
## 10 GM 2014-01-15 39.6 39.8 39.0 39.4 89207600 29.7
## # ℹ 7,951 more rows
Arrange Rows
stocks %>% arrange(desc("msft"))
## # A tibble: 8,070 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 GM 2014-01-02 40.7 41.1 40.3 41.0 14763300 30.9
## 2 GM 2014-01-03 40.9 41.0 39 39.6 41426900 29.9
## 3 GM 2014-01-06 39.9 40.6 39.6 40.4 25063500 30.5
## 4 GM 2014-01-07 40.7 40.9 40.1 40.2 14156900 30.4
## 5 GM 2014-01-08 40.3 40.8 40.2 40.4 11342400 30.5
## 6 GM 2014-01-09 40.9 40.9 40.3 40.5 9790600 30.6
## 7 GM 2014-01-10 40.6 40.7 39.8 40.0 14596000 30.2
## 8 GM 2014-01-13 40.2 40.6 39.4 39.6 20993200 29.9
## 9 GM 2014-01-14 39.8 40.2 39.6 40.0 17389100 30.2
## 10 GM 2014-01-15 39.6 39.8 39.0 39.4 89207600 29.7
## # ℹ 8,060 more rows
Select Columns
stocks %>% select("date")
## # A tibble: 8,070 × 1
## date
## <date>
## 1 2014-01-02
## 2 2014-01-03
## 3 2014-01-06
## 4 2014-01-07
## 5 2014-01-08
## 6 2014-01-09
## 7 2014-01-10
## 8 2014-01-13
## 9 2014-01-14
## 10 2014-01-15
## # ℹ 8,060 more rows
Add Columns
stocks %>% mutate(stocks,
day_diff = close - open) %>%
select(symbol:close, day_diff)
## # A tibble: 8,070 × 7
## symbol date open high low close day_diff
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 GM 2014-01-02 40.7 41.1 40.3 41.0 0.270
## 2 GM 2014-01-03 40.9 41.0 39 39.6 -1.35
## 3 GM 2014-01-06 39.9 40.6 39.6 40.4 0.5
## 4 GM 2014-01-07 40.7 40.9 40.1 40.2 -0.5
## 5 GM 2014-01-08 40.3 40.8 40.2 40.4 0.0900
## 6 GM 2014-01-09 40.9 40.9 40.3 40.5 -0.390
## 7 GM 2014-01-10 40.6 40.7 39.8 40.0 -0.570
## 8 GM 2014-01-13 40.2 40.6 39.4 39.6 -0.580
## 9 GM 2014-01-14 39.8 40.2 39.6 40.0 0.25
## 10 GM 2014-01-15 39.6 39.8 39.0 39.4 -0.25
## # ℹ 8,060 more rows
Summarise with groups
stocks %>%
group_by(symbol) %>%
summarise(avg_volume = mean(volume, na.rm = TRUE)) %>%
arrange(avg_volume)
## # A tibble: 3 × 2
## symbol avg_volume
## <chr> <dbl>
## 1 VRTX 1631256.
## 2 GM 14815344.
## 3 MSFT 29540629.