Import stock prices
stocks <- tq_get(c("NKE", "COKE", "ULTA", "AMZN", "AAPL"),
get = "stock.prices",
from = "2016-01-01")
stocks
## # A tibble: 10,930 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2016-01-04 61.1 61.9 60.9 61.5 11626800 55.7
## 2 NKE 2016-01-05 61.7 62.6 61.7 62.4 9220600 56.5
## 3 NKE 2016-01-06 61.3 62.0 61.2 61.5 6551600 55.7
## 4 NKE 2016-01-07 60.4 61.3 59.8 59.8 10881300 54.2
## 5 NKE 2016-01-08 60.1 60.8 58.7 58.9 11191300 53.3
## 6 NKE 2016-01-11 59.0 60.0 58.5 59.5 12825000 53.9
## 7 NKE 2016-01-12 60.3 60.8 59.6 59.9 8292200 54.3
## 8 NKE 2016-01-13 60.5 60.5 58.7 58.8 9944300 53.2
## 9 NKE 2016-01-14 59 59.3 57.3 58.5 9989000 53.0
## 10 NKE 2016-01-15 56.9 58.1 56.6 57.6 12208300 52.1
## # ℹ 10,920 more rows
Apply the dplyr verbs you learned in chapter 5
Filter rows
stocks %>% filter(adjusted > 24)
## # A tibble: 10,809 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2016-01-04 61.1 61.9 60.9 61.5 11626800 55.7
## 2 NKE 2016-01-05 61.7 62.6 61.7 62.4 9220600 56.5
## 3 NKE 2016-01-06 61.3 62.0 61.2 61.5 6551600 55.7
## 4 NKE 2016-01-07 60.4 61.3 59.8 59.8 10881300 54.2
## 5 NKE 2016-01-08 60.1 60.8 58.7 58.9 11191300 53.3
## 6 NKE 2016-01-11 59.0 60.0 58.5 59.5 12825000 53.9
## 7 NKE 2016-01-12 60.3 60.8 59.6 59.9 8292200 54.3
## 8 NKE 2016-01-13 60.5 60.5 58.7 58.8 9944300 53.2
## 9 NKE 2016-01-14 59 59.3 57.3 58.5 9989000 53.0
## 10 NKE 2016-01-15 56.9 58.1 56.6 57.6 12208300 52.1
## # ℹ 10,799 more rows
Arrange rows
arrange(stocks, desc(open), desc(high), desc(low))
## # A tibble: 10,930 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COKE 2024-08-23 1362. 1374. 1348. 1350 50100 1350
## 2 COKE 2024-09-05 1352. 1370. 1333. 1348. 62400 1348.
## 3 COKE 2024-08-26 1352. 1360 1332 1340. 39500 1340.
## 4 COKE 2024-09-10 1351. 1361. 1286. 1288. 60900 1288.
## 5 COKE 2024-09-03 1347. 1360. 1320. 1329. 57300 1329.
## 6 COKE 2024-09-06 1345. 1368. 1325. 1330. 52200 1330.
## 7 COKE 2024-09-09 1339. 1377. 1339. 1351. 80500 1351.
## 8 COKE 2024-08-28 1335. 1335. 1314. 1328. 50000 1328.
## 9 COKE 2024-08-27 1334. 1340 1332. 1334. 37300 1334.
## 10 COKE 2024-08-29 1330 1335. 1323. 1326. 36400 1326.
## # ℹ 10,920 more rows
arrange(stocks, desc(close), desc(volume), desc(adjusted))
## # A tibble: 10,930 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 COKE 2024-08-22 1325. 1370 1325. 1356. 54900 1356.
## 2 COKE 2024-09-04 1324. 1368. 1323. 1352. 60700 1352.
## 3 COKE 2024-09-09 1339. 1377. 1339. 1351. 80500 1351.
## 4 COKE 2024-08-23 1362. 1374. 1348. 1350 50100 1350
## 5 COKE 2024-09-05 1352. 1370. 1333. 1348. 62400 1348.
## 6 COKE 2024-08-30 1326. 1342. 1317 1342. 54000 1342.
## 7 COKE 2024-08-26 1352. 1360 1332 1340. 39500 1340.
## 8 COKE 2024-08-27 1334. 1340 1332. 1334. 37300 1334.
## 9 COKE 2024-09-06 1345. 1368. 1325. 1330. 52200 1330.
## 10 COKE 2024-09-03 1347. 1360. 1320. 1329. 57300 1329.
## # ℹ 10,920 more rows
arrange(stocks, desc(date))
## # A tibble: 10,930 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2024-09-10 79.6 79.6 77.6 78.1 9748400 78.1
## 2 COKE 2024-09-10 1351. 1361. 1286. 1288. 60900 1288.
## 3 ULTA 2024-09-10 378. 378. 356. 374. 2032500 374.
## 4 AMZN 2024-09-10 177. 180. 177. 180. 36233800 180.
## 5 AAPL 2024-09-10 219. 221. 217. 220. 51591000 220.
## 6 NKE 2024-09-09 80.8 81.6 79.0 79.5 8003300 79.5
## 7 COKE 2024-09-09 1339. 1377. 1339. 1351. 80500 1351.
## 8 ULTA 2024-09-09 368. 384. 368 382. 1498300 382.
## 9 AMZN 2024-09-09 175. 176. 174. 175. 29037400 175.
## 10 AAPL 2024-09-09 221. 221. 217. 221. 67180000 221.
## # ℹ 10,920 more rows
Select columns
select(stocks, date)
## # A tibble: 10,930 × 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
## # ℹ 10,920 more rows
select(stocks, date, open, close, volume)
## # A tibble: 10,930 × 4
## date open close volume
## <date> <dbl> <dbl> <dbl>
## 1 2016-01-04 61.1 61.5 11626800
## 2 2016-01-05 61.7 62.4 9220600
## 3 2016-01-06 61.3 61.5 6551600
## 4 2016-01-07 60.4 59.8 10881300
## 5 2016-01-08 60.1 58.9 11191300
## 6 2016-01-11 59.0 59.5 12825000
## 7 2016-01-12 60.3 59.9 8292200
## 8 2016-01-13 60.5 58.8 9944300
## 9 2016-01-14 59 58.5 9989000
## 10 2016-01-15 56.9 57.6 12208300
## # ℹ 10,920 more rows
select(stocks, date, open, close, volume, adjusted)
## # A tibble: 10,930 × 5
## date open close volume adjusted
## <date> <dbl> <dbl> <dbl> <dbl>
## 1 2016-01-04 61.1 61.5 11626800 55.7
## 2 2016-01-05 61.7 62.4 9220600 56.5
## 3 2016-01-06 61.3 61.5 6551600 55.7
## 4 2016-01-07 60.4 59.8 10881300 54.2
## 5 2016-01-08 60.1 58.9 11191300 53.3
## 6 2016-01-11 59.0 59.5 12825000 53.9
## 7 2016-01-12 60.3 59.9 8292200 54.3
## 8 2016-01-13 60.5 58.8 9944300 53.2
## 9 2016-01-14 59 58.5 9989000 53.0
## 10 2016-01-15 56.9 57.6 12208300 52.1
## # ℹ 10,920 more rows
select(stocks, date, open, close, starts_with("60"))
## # A tibble: 10,930 × 3
## date open close
## <date> <dbl> <dbl>
## 1 2016-01-04 61.1 61.5
## 2 2016-01-05 61.7 62.4
## 3 2016-01-06 61.3 61.5
## 4 2016-01-07 60.4 59.8
## 5 2016-01-08 60.1 58.9
## 6 2016-01-11 59.0 59.5
## 7 2016-01-12 60.3 59.9
## 8 2016-01-13 60.5 58.8
## 9 2016-01-14 59 58.5
## 10 2016-01-15 56.9 57.6
## # ℹ 10,920 more rows
Add columns
mutate(stocks)
## # A tibble: 10,930 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2016-01-04 61.1 61.9 60.9 61.5 11626800 55.7
## 2 NKE 2016-01-05 61.7 62.6 61.7 62.4 9220600 56.5
## 3 NKE 2016-01-06 61.3 62.0 61.2 61.5 6551600 55.7
## 4 NKE 2016-01-07 60.4 61.3 59.8 59.8 10881300 54.2
## 5 NKE 2016-01-08 60.1 60.8 58.7 58.9 11191300 53.3
## 6 NKE 2016-01-11 59.0 60.0 58.5 59.5 12825000 53.9
## 7 NKE 2016-01-12 60.3 60.8 59.6 59.9 8292200 54.3
## 8 NKE 2016-01-13 60.5 60.5 58.7 58.8 9944300 53.2
## 9 NKE 2016-01-14 59 59.3 57.3 58.5 9989000 53.0
## 10 NKE 2016-01-15 56.9 58.1 56.6 57.6 12208300 52.1
## # ℹ 10,920 more rows
Summarise with groups
stocks %>%
# Group by volume
group_by(volume)
## # A tibble: 10,930 × 8
## # Groups: volume [9,233]
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2016-01-04 61.1 61.9 60.9 61.5 11626800 55.7
## 2 NKE 2016-01-05 61.7 62.6 61.7 62.4 9220600 56.5
## 3 NKE 2016-01-06 61.3 62.0 61.2 61.5 6551600 55.7
## 4 NKE 2016-01-07 60.4 61.3 59.8 59.8 10881300 54.2
## 5 NKE 2016-01-08 60.1 60.8 58.7 58.9 11191300 53.3
## 6 NKE 2016-01-11 59.0 60.0 58.5 59.5 12825000 53.9
## 7 NKE 2016-01-12 60.3 60.8 59.6 59.9 8292200 54.3
## 8 NKE 2016-01-13 60.5 60.5 58.7 58.8 9944300 53.2
## 9 NKE 2016-01-14 59 59.3 57.3 58.5 9989000 53.0
## 10 NKE 2016-01-15 56.9 58.1 56.6 57.6 12208300 52.1
## # ℹ 10,920 more rows
# Sort it
stocks %>%
arrange(adjusted)
## # A tibble: 10,930 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AAPL 2016-05-12 23.2 23.2 22.4 22.6 305258800 20.7
## 2 AAPL 2016-05-13 22.5 22.9 22.5 22.6 177571200 20.8
## 3 AAPL 2016-06-27 23.2 23.3 22.9 23.0 181958400 21.1
## 4 AAPL 2016-01-27 24.0 24.2 23.3 23.4 533478800 21.2
## 5 AAPL 2016-05-11 23.4 23.4 23.1 23.1 114876400 21.2
## 6 AAPL 2016-05-06 23.3 23.4 23.0 23.2 174799600 21.3
## 7 AAPL 2016-05-09 23.2 23.4 23.1 23.2 131745600 21.3
## 8 AAPL 2016-01-28 23.4 23.6 23.1 23.5 222715200 21.3
## 9 AAPL 2016-05-02 23.5 23.5 23.1 23.4 192640400 21.3
## 10 AAPL 2016-02-11 23.4 23.7 23.1 23.4 200298800 21.4
## # ℹ 10,920 more rows