Import stock prices
stocks <- tq_get(c("COIN", "CMG", "U", "RIOT"),
get = "stock.prices",
from = "2016-01-01")
stocks
## # A tibble: 6,170 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COIN 2021-04-14 381 430. 310 328. 81065700 328.
## 2 COIN 2021-04-15 349. 349. 317. 323. 39777900 323.
## 3 COIN 2021-04-16 328. 346. 321. 342 22654500 342
## 4 COIN 2021-04-19 337. 341. 327. 333 11405600 333
## 5 COIN 2021-04-20 333. 335. 312. 321. 18082300 321.
## 6 COIN 2021-04-21 313. 327. 302. 312. 10103900 312.
## 7 COIN 2021-04-22 306. 314. 287. 293. 14991900 293.
## 8 COIN 2021-04-23 283. 303 282. 292. 9853800 292.
## 9 COIN 2021-04-26 304. 306. 297. 305. 6330200 305.
## 10 COIN 2021-04-27 307. 307. 300. 302 3902000 302
## # ℹ 6,160 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(open > 310)
## # A tibble: 30 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COIN 2021-04-14 381 430. 310 328. 81065700 328.
## 2 COIN 2021-04-15 349. 349. 317. 323. 39777900 323.
## 3 COIN 2021-04-16 328. 346. 321. 342 22654500 342
## 4 COIN 2021-04-19 337. 341. 327. 333 11405600 333
## 5 COIN 2021-04-20 333. 335. 312. 321. 18082300 321.
## 6 COIN 2021-04-21 313. 327. 302. 312. 10103900 312.
## 7 COIN 2021-10-21 312. 317. 298 300. 8289200 300.
## 8 COIN 2021-10-26 328. 328. 316. 319. 7635800 319.
## 9 COIN 2021-10-28 320. 328. 311 319. 5952300 319.
## 10 COIN 2021-10-29 319. 326. 316. 319. 3766400 319.
## # ℹ 20 more rows
Arrange rows
stocks %>%
arrange(desc(date))
## # A tibble: 6,170 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COIN 2024-09-10 155. 159. 150. 158. 5804700 158.
## 2 CMG 2024-09-10 54.4 54.9 53.7 54.2 8363300 54.2
## 3 U 2024-09-10 17.3 17.5 16.5 16.8 14928500 16.8
## 4 RIOT 2024-09-10 6.84 7.28 6.60 7.24 13594300 7.24
## 5 COIN 2024-09-09 151. 157. 150. 155. 9256700 155.
## 6 CMG 2024-09-09 54.0 54.8 54 54.3 9472500 54.3
## 7 U 2024-09-09 16.1 17.3 16.1 17.2 13968900 17.2
## 8 RIOT 2024-09-09 6.58 6.85 6.39 6.81 15313200 6.81
## 9 COIN 2024-09-06 163. 164. 146. 147. 11026600 147.
## 10 CMG 2024-09-06 53.2 54.5 53.1 53.7 13248700 53.7
## # ℹ 6,160 more rows
Select columns
stocks %>%
select(-adjusted)
## # A tibble: 6,170 × 7
## symbol date open high low close volume
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COIN 2021-04-14 381 430. 310 328. 81065700
## 2 COIN 2021-04-15 349. 349. 317. 323. 39777900
## 3 COIN 2021-04-16 328. 346. 321. 342 22654500
## 4 COIN 2021-04-19 337. 341. 327. 333 11405600
## 5 COIN 2021-04-20 333. 335. 312. 321. 18082300
## 6 COIN 2021-04-21 313. 327. 302. 312. 10103900
## 7 COIN 2021-04-22 306. 314. 287. 293. 14991900
## 8 COIN 2021-04-23 283. 303 282. 292. 9853800
## 9 COIN 2021-04-26 304. 306. 297. 305. 6330200
## 10 COIN 2021-04-27 307. 307. 300. 302 3902000
## # ℹ 6,160 more rows
stocks %>%
select(open, close)
## # A tibble: 6,170 × 2
## open close
## <dbl> <dbl>
## 1 381 328.
## 2 349. 323.
## 3 328. 342
## 4 337. 333
## 5 333. 321.
## 6 313. 312.
## 7 306. 293.
## 8 283. 292.
## 9 304. 305.
## 10 307. 302
## # ℹ 6,160 more rows
stocks %>%
select(high, low)
## # A tibble: 6,170 × 2
## high low
## <dbl> <dbl>
## 1 430. 310
## 2 349. 317.
## 3 346. 321.
## 4 341. 327.
## 5 335. 312.
## 6 327. 302.
## 7 314. 287.
## 8 303 282.
## 9 306. 297.
## 10 307. 300.
## # ℹ 6,160 more rows
Add columns
stocks %>%
mutate(Gap = high - low)
## # A tibble: 6,170 × 9
## symbol date open high low close volume adjusted Gap
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COIN 2021-04-14 381 430. 310 328. 81065700 328. 120.
## 2 COIN 2021-04-15 349. 349. 317. 323. 39777900 323. 31.9
## 3 COIN 2021-04-16 328. 346. 321. 342 22654500 342 25.0
## 4 COIN 2021-04-19 337. 341. 327. 333 11405600 333 14.2
## 5 COIN 2021-04-20 333. 335. 312. 321. 18082300 321. 22.8
## 6 COIN 2021-04-21 313. 327. 302. 312. 10103900 312. 25.4
## 7 COIN 2021-04-22 306. 314. 287. 293. 14991900 293. 26.3
## 8 COIN 2021-04-23 283. 303 282. 292. 9853800 292. 20.9
## 9 COIN 2021-04-26 304. 306. 297. 305. 6330200 305. 9.20
## 10 COIN 2021-04-27 307. 307. 300. 302 3902000 302 7.20
## # ℹ 6,160 more rows
Summarize with groups
stocks %>%
group_by(symbol) %>%
summarize(avg_volume = AVERAGE(volume))
## # A tibble: 4 × 2
## symbol avg_volume
## <chr> <dbl>
## 1 CMG 30969831.
## 2 COIN 10921663.
## 3 RIOT 9608861.
## 4 U 7854255.