Import stock prices
stocks <- tq_get(c("TSLA", "F", "TM", "HMC"),
get = "stock.prices",
from = "2018-01-01",
to = "2019-01-01")
stocks
## # A tibble: 1,004 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2018-01-02 20.8 21.5 20.7 21.4 65283000 21.4
## 2 TSLA 2018-01-03 21.4 21.7 21.0 21.2 67822500 21.2
## 3 TSLA 2018-01-04 20.9 21.2 20.4 21.0 149194500 21.0
## 4 TSLA 2018-01-05 21.1 21.1 20.8 21.1 68868000 21.1
## 5 TSLA 2018-01-08 21.1 22.5 21.0 22.4 147891000 22.4
## 6 TSLA 2018-01-09 22.3 22.6 21.8 22.2 107199000 22.2
## 7 TSLA 2018-01-10 22.1 22.5 22 22.3 64648500 22.3
## 8 TSLA 2018-01-11 22.3 23.0 22.2 22.5 99682500 22.5
## 9 TSLA 2018-01-12 22.6 22.7 22.2 22.4 72376500 22.4
## 10 TSLA 2018-01-16 22.5 23 22.3 22.7 97114500 22.7
## # … with 994 more rows
Plot stock prices
stocks %>%
ggplot(aes(x = date, y = adjusted, color = symbol)) +
geom_line()

Apply the dplyr verbs you leanred in chapter 5
Filter rows
stocks %>% filter(adjusted > 24)
## # A tibble: 512 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2018-06-18 23.7 24.9 23.6 24.7 181098000 24.7
## 2 TSLA 2018-06-20 23.9 24.3 23.5 24.1 125755500 24.1
## 3 TSLA 2018-08-07 22.9 25.8 22.6 25.3 463137000 25.3
## 4 TSLA 2018-08-08 24.6 25.5 24.5 24.7 368568000 24.7
## 5 TSLA 2018-12-06 23.7 24.5 23.4 24.2 117637500 24.2
## 6 TSLA 2018-12-10 24 24.4 23.5 24.3 99202500 24.3
## 7 TSLA 2018-12-11 24.7 24.8 24.0 24.5 94632000 24.5
## 8 TSLA 2018-12-12 24.6 24.8 24.3 24.4 75405000 24.4
## 9 TSLA 2018-12-13 24.7 25.2 24.5 25.1 110488500 25.1
## 10 TSLA 2018-12-14 25 25.2 24.3 24.4 95064000 24.4
## # … with 502 more rows
Arrange rows
stocks %>% arrange(desc(date))
## # A tibble: 1,004 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2018-12-31 22.5 22.6 21.7 22.2 94534500 22.2
## 2 F 2018-12-31 7.85 7.86 7.5 7.65 57816000 6.87
## 3 TM 2018-12-31 116. 117. 115. 116. 184700 116.
## 4 HMC 2018-12-31 26.5 26.7 26.4 26.5 1158400 26.5
## 5 TSLA 2018-12-28 21.5 22.4 21.2 22.3 149085000 22.3
## 6 F 2018-12-28 7.83 8.04 7.76 7.81 47331700 7.01
## 7 TM 2018-12-28 116. 117. 116. 116. 179300 116.
## 8 HMC 2018-12-28 26.3 26.7 26.2 26.4 1105000 26.4
## 9 TSLA 2018-12-27 21.3 21.5 20.1 21.1 128626500 21.1
## 10 F 2018-12-27 7.82 7.85 7.53 7.85 49813000 7.05
## # … with 994 more rows
Select columns
stocks %>% select(symbol, date,open,high,low,close)
## # A tibble: 1,004 × 6
## symbol date open high low close
## <chr> <date> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2018-01-02 20.8 21.5 20.7 21.4
## 2 TSLA 2018-01-03 21.4 21.7 21.0 21.2
## 3 TSLA 2018-01-04 20.9 21.2 20.4 21.0
## 4 TSLA 2018-01-05 21.1 21.1 20.8 21.1
## 5 TSLA 2018-01-08 21.1 22.5 21.0 22.4
## 6 TSLA 2018-01-09 22.3 22.6 21.8 22.2
## 7 TSLA 2018-01-10 22.1 22.5 22 22.3
## 8 TSLA 2018-01-11 22.3 23.0 22.2 22.5
## 9 TSLA 2018-01-12 22.6 22.7 22.2 22.4
## 10 TSLA 2018-01-16 22.5 23 22.3 22.7
## # … with 994 more rows
Add columns
mutate(stocks,
high_low_difference = high - low)
## # A tibble: 1,004 × 9
## symbol date open high low close volume adjusted high_low_diffe…¹
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2018-01-02 20.8 21.5 20.7 21.4 65283000 21.4 0.741
## 2 TSLA 2018-01-03 21.4 21.7 21.0 21.2 67822500 21.2 0.647
## 3 TSLA 2018-01-04 20.9 21.2 20.4 21.0 149194500 21.0 0.858
## 4 TSLA 2018-01-05 21.1 21.1 20.8 21.1 68868000 21.1 0.349
## 5 TSLA 2018-01-08 21.1 22.5 21.0 22.4 147891000 22.4 1.43
## 6 TSLA 2018-01-09 22.3 22.6 21.8 22.2 107199000 22.2 0.760
## 7 TSLA 2018-01-10 22.1 22.5 22 22.3 64648500 22.3 0.467
## 8 TSLA 2018-01-11 22.3 23.0 22.2 22.5 99682500 22.5 0.770
## 9 TSLA 2018-01-12 22.6 22.7 22.2 22.4 72376500 22.4 0.449
## 10 TSLA 2018-01-16 22.5 23 22.3 22.7 97114500 22.7 0.68
## # … with 994 more rows, and abbreviated variable name ¹high_low_difference
Summarise with groups