Import stock prices
stocks <- tq_get(c("MSFT", "AAPL","NKE"),
get = "stock.prices",
from = "2022-01-01",)
stocks
## # A tibble: 2,772 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 MSFT 2022-01-03 335. 338 330. 335. 28865100 325.
## 2 MSFT 2022-01-04 335. 335. 326. 329. 32674300 319.
## 3 MSFT 2022-01-05 326. 326. 316. 316. 40054300 307.
## 4 MSFT 2022-01-06 313. 319. 311. 314. 39646100 304.
## 5 MSFT 2022-01-07 314. 316. 310. 314. 32720000 304.
## 6 MSFT 2022-01-10 309. 315. 305. 314. 44289500 305.
## 7 MSFT 2022-01-11 313. 317. 310. 315. 29386800 305.
## 8 MSFT 2022-01-12 320. 323. 317. 318. 34372200 309.
## 9 MSFT 2022-01-13 320. 321. 304 305. 45366000 295.
## 10 MSFT 2022-01-14 304. 311. 304. 310. 39846400 301.
## # ℹ 2,762 more rows
Plot stock prices
stocks %>%
ggplot(aes(x = date, y = adjusted, color = symbol)) +
geom_line()

Apply the dplyr verbs
Filter rows
stocks %>% filter(adjusted > 100)
## # A tibble: 2,262 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 MSFT 2022-01-03 335. 338 330. 335. 28865100 325.
## 2 MSFT 2022-01-04 335. 335. 326. 329. 32674300 319.
## 3 MSFT 2022-01-05 326. 326. 316. 316. 40054300 307.
## 4 MSFT 2022-01-06 313. 319. 311. 314. 39646100 304.
## 5 MSFT 2022-01-07 314. 316. 310. 314. 32720000 304.
## 6 MSFT 2022-01-10 309. 315. 305. 314. 44289500 305.
## 7 MSFT 2022-01-11 313. 317. 310. 315. 29386800 305.
## 8 MSFT 2022-01-12 320. 323. 317. 318. 34372200 309.
## 9 MSFT 2022-01-13 320. 321. 304 305. 45366000 295.
## 10 MSFT 2022-01-14 304. 311. 304. 310. 39846400 301.
## # ℹ 2,252 more rows
Arrange rows
arrange(stocks, desc(date), desc(low))
## # A tibble: 2,772 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 MSFT 2025-09-09 501. 502. 498. 498. 14410500 498.
## 2 AAPL 2025-09-09 237 239. 233. 234. 66313900 234.
## 3 NKE 2025-09-09 74.0 74.6 73.1 73.6 8740200 73.6
## 4 MSFT 2025-09-08 498. 501. 495. 498. 16771000 498.
## 5 AAPL 2025-09-08 239. 240. 236. 238. 48999500 238.
## 6 NKE 2025-09-08 74.3 74.6 73.7 74.2 13793300 74.2
## 7 MSFT 2025-09-05 509. 512. 492. 495 31994800 495
## 8 AAPL 2025-09-05 240 241. 238. 240. 54870400 240.
## 9 NKE 2025-09-05 74.8 75.4 73.6 73.9 13758400 73.9
## 10 MSFT 2025-09-04 504. 508. 503. 508. 15509500 508.
## # ℹ 2,762 more rows
Select columns
select(stocks, symbol, date, high, low)
## # A tibble: 2,772 × 4
## symbol date high low
## <chr> <date> <dbl> <dbl>
## 1 MSFT 2022-01-03 338 330.
## 2 MSFT 2022-01-04 335. 326.
## 3 MSFT 2022-01-05 326. 316.
## 4 MSFT 2022-01-06 319. 311.
## 5 MSFT 2022-01-07 316. 310.
## 6 MSFT 2022-01-10 315. 305.
## 7 MSFT 2022-01-11 317. 310.
## 8 MSFT 2022-01-12 323. 317.
## 9 MSFT 2022-01-13 321. 304
## 10 MSFT 2022-01-14 311. 304.
## # ℹ 2,762 more rows
Summarise with groups
summarise(stocks, mean(low, na.rm = TRUE))
## # A tibble: 1 × 1
## `mean(low, na.rm = TRUE)`
## <dbl>
## 1 211.