Import stock prices
stocks <- tq_get(c("NVDA", "DELL", "DIS"),
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 > 100)
## # A tibble: 1,953 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NVDA 2020-07-08 99.9 102. 99.7 102. 36548000 102.
## 2 NVDA 2020-07-09 104. 106. 102. 105. 49454800 105.
## 3 NVDA 2020-07-10 106. 107. 104. 105. 49767600 105.
## 4 NVDA 2020-07-13 106. 108. 100. 101. 45707600 100.
## 5 NVDA 2020-07-14 101. 104. 97.9 104. 54267600 104.
## 6 NVDA 2020-07-15 104. 104. 101. 102. 40398400 102.
## 7 NVDA 2020-07-16 100. 102. 99.0 101. 34496400 101.
## 8 NVDA 2020-07-17 102. 102. 101. 102. 26628400 102.
## 9 NVDA 2020-07-20 103. 105. 102. 105. 28485200 105.
## 10 NVDA 2020-07-21 105. 106. 103. 103. 27703600 103.
## # … with 1,943 more rows
Arrange Rows
arrange(stocks, desc(low), desc (high))
## # A tibble: 5,207 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NVDA 2021-11-29 324. 334. 320. 334. 45496400 333.
## 2 NVDA 2021-11-19 322. 331. 319. 330. 53386700 330.
## 3 NVDA 2021-11-22 335. 346. 319 320. 75433500 319.
## 4 NVDA 2021-11-30 332. 334. 319. 327. 62206600 326.
## 5 NVDA 2021-12-08 320. 323. 314. 318. 47555100 318.
## 6 NVDA 2021-12-01 332. 333. 314. 314. 48436800 314.
## 7 NVDA 2021-11-26 326 327. 314. 315. 28306900 315.
## 8 NVDA 2021-11-18 324. 328. 313. 317. 78171100 316.
## 9 NVDA 2021-12-02 312. 325. 310. 321. 47289000 321.
## 10 NVDA 2021-11-24 315. 329. 309. 327. 43516200 326.
## # … with 5,197 more rows
Select Columns
select(stocks, date)
## # A tibble: 5,207 × 1
## date
## <date>
## 1 2016-01-04
## 2 2016-01-05
## 3 2016-01-06
## 4 2016-01-07
## 5 2016-01-08
## 6 2016-01-11
## 7 2016-01-12
## 8 2016-01-13
## 9 2016-01-14
## 10 2016-01-15
## # … with 5,197 more rows
Add Columns
mutate(stocks,
gain = high - low)
## # A tibble: 5,207 × 9
## symbol date open high low close volume adjusted gain
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NVDA 2016-01-04 8.07 8.14 8.01 8.09 35807600 7.90 0.135
## 2 NVDA 2016-01-05 8.24 8.36 8.12 8.22 49027200 8.03 0.235
## 3 NVDA 2016-01-06 8.09 8.12 7.79 7.88 44934400 7.70 0.335
## 4 NVDA 2016-01-07 7.68 7.74 7.47 7.57 64530400 7.39 0.268
## 5 NVDA 2016-01-08 7.67 7.68 7.39 7.41 39847200 7.23 0.282
## 6 NVDA 2016-01-11 7.42 7.47 7.29 7.42 40937200 7.25 0.185
## 7 NVDA 2016-01-12 7.55 7.66 7.49 7.54 46935600 7.37 0.163
## 8 NVDA 2016-01-13 7.60 7.65 7.31 7.32 48167200 7.14 0.345
## 9 NVDA 2016-01-14 7.16 7.25 6.96 7.17 60023600 7.00 0.295
## 10 NVDA 2016-01-15 6.88 6.96 6.66 6.78 84145200 6.62 0.303
## # … with 5,197 more rows
Summarize with Groups
stocks %>%
group_by(symbol) %>%
summarise(open = mean (open, na.rm = TRUE),
low = mean (low, na.rm = TRUE),
high = mean (high, na.rm = TRUE))
## # A tibble: 3 × 4
## symbol open low high
## <chr> <dbl> <dbl> <dbl>
## 1 DELL 31.5 31.1 31.9
## 2 DIS 123. 121. 124.
## 3 NVDA 91.7 89.8 93.4