Import stock prices
stocks <- tq_get(c("TSLA", "NFLX", "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
Filter Rows
stocks %>% filter(adjusted > 24)
## # A tibble: 6,712 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2017-06-08 24.2 24.8 24.0 24.7 135922500 24.7
## 2 TSLA 2017-06-13 24.5 25.1 24.4 25.1 177118500 25.1
## 3 TSLA 2017-06-14 25.4 25.6 25.1 25.4 192276000 25.4
## 4 TSLA 2017-06-15 24.8 25.0 24.4 25.0 156397500 25.0
## 5 TSLA 2017-06-16 25.2 25.2 24.7 24.8 100965000 24.8
## 6 TSLA 2017-06-19 25 25.1 24.5 24.7 98239500 24.7
## 7 TSLA 2017-06-20 25.1 25.3 24.6 24.8 111580500 24.8
## 8 TSLA 2017-06-21 25.0 25.1 24.5 25.1 73848000 25.1
## 9 TSLA 2017-06-22 25.2 25.7 24.9 25.5 112947000 25.5
## 10 TSLA 2017-06-23 25.5 25.8 25.3 25.6 96687000 25.6
## # ℹ 6,702 more rows
arrange rows
stocks %>% arrange(desc("msft"))
## # A tibble: 8,172 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2014-01-02 9.99 10.2 9.77 10.0 92826000 10.0
## 2 TSLA 2014-01-03 10 10.1 9.91 9.97 70425000 9.97
## 3 TSLA 2014-01-06 10 10.0 9.68 9.80 80416500 9.80
## 4 TSLA 2014-01-07 9.84 10.0 9.68 9.96 75511500 9.96
## 5 TSLA 2014-01-08 9.92 10.2 9.92 10.1 92448000 10.1
## 6 TSLA 2014-01-09 10.2 10.2 9.79 9.84 80730000 9.84
## 7 TSLA 2014-01-10 9.90 9.93 9.48 9.71 111691500 9.71
## 8 TSLA 2014-01-13 9.72 9.80 9.19 9.29 94741500 9.29
## 9 TSLA 2014-01-14 9.37 10.8 9.11 10.8 414105000 10.8
## 10 TSLA 2014-01-15 11.2 11.5 10.8 10.9 306984000 10.9
## # ℹ 8,162 more rows
Select Columns
stocks %>% select("date")
## # A tibble: 8,172 × 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,162 more rows
Add Columns
stocks %>% mutate(stocks,
day_diff = close - open) %>%
select(symbol:close, day_diff)
## # A tibble: 8,172 × 7
## symbol date open high low close day_diff
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2014-01-02 9.99 10.2 9.77 10.0 0.0200
## 2 TSLA 2014-01-03 10 10.1 9.91 9.97 -0.0293
## 3 TSLA 2014-01-06 10 10.0 9.68 9.80 -0.200
## 4 TSLA 2014-01-07 9.84 10.0 9.68 9.96 0.116
## 5 TSLA 2014-01-08 9.92 10.2 9.92 10.1 0.162
## 6 TSLA 2014-01-09 10.2 10.2 9.79 9.84 -0.331
## 7 TSLA 2014-01-10 9.90 9.93 9.48 9.71 -0.183
## 8 TSLA 2014-01-13 9.72 9.80 9.19 9.29 -0.429
## 9 TSLA 2014-01-14 9.37 10.8 9.11 10.8 1.38
## 10 TSLA 2014-01-15 11.2 11.5 10.8 10.9 -0.288
## # ℹ 8,162 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 NFLX 9974964.
## 2 MSFT 29396634.
## 3 TSLA 111787426.