Import stock prices
stocks <- tq_get(c("NKE", "PUM.DE", "NFLX"),
get = "stock.prices",
from = "2020-01-01",
to = "2024-01-01")
stocks
## # A tibble: 3,033 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2020-01-02 101. 102. 101. 102. 5644100 91.8
## 2 NKE 2020-01-03 101. 102 100. 102. 4541800 91.6
## 3 NKE 2020-01-06 101. 102. 101. 102. 4612400 91.5
## 4 NKE 2020-01-07 102. 103. 101. 102. 6719900 91.5
## 5 NKE 2020-01-08 101. 102. 101. 102. 4942200 91.3
## 6 NKE 2020-01-09 102. 102. 101. 101. 5007500 91.2
## 7 NKE 2020-01-10 102. 102. 101. 101. 5135300 90.7
## 8 NKE 2020-01-13 101 102. 101. 102. 6722400 91.8
## 9 NKE 2020-01-14 102. 104. 102. 103. 5088500 92.5
## 10 NKE 2020-01-15 103. 104. 102. 103. 4209200 92.4
## # ℹ 3,023 more rows
Plot stock prices
stocks %>%
ggplot(aes(x = date, y = adjusted, color = symbol)) +
geom_line()

Filter rows
stocks %>% filter(open == 101)
## # A tibble: 5 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NKE 2020-01-13 101 102. 101. 102. 6722400 91.8
## 2 NKE 2020-08-07 101 102. 99.9 102. 5545600 92.0
## 3 PUM.DE 2021-07-01 101 102. 99.7 99.9 257812 93.0
## 4 PUM.DE 2021-09-22 101 101 98.5 101. 266982 93.6
## 5 PUM.DE 2021-10-15 101 102. 100. 102. 258924 94.5
Arrange rows
stocks %>% arrange(desc(volume))
## # A tibble: 3,033 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NFLX 2022-04-20 24.5 24.9 21.3 22.6 1333875000 22.6
## 2 NFLX 2022-01-21 40.0 40.9 38.0 39.8 589043000 39.8
## 3 NFLX 2022-07-20 20.8 21.7 20.0 21.6 539203000 21.6
## 4 NFLX 2022-04-21 22 22.8 21.2 21.8 535016000 21.8
## 5 NFLX 2022-10-19 26.5 27.9 26.3 27.2 466853000 27.2
## 6 NFLX 2022-04-22 22.0 22.6 21.0 21.6 375151000 21.6
## 7 NFLX 2021-01-20 56.5 59.3 55.7 58.6 326375000 58.6
## 8 NFLX 2022-01-24 38.4 38.7 35.1 38.7 323460000 38.7
## 9 NFLX 2023-01-20 33.7 34.4 33.3 34.2 284303000 34.2
## 10 NFLX 2022-07-19 19.3 20.2 18.8 20.2 281787000 20.2
## # ℹ 3,023 more rows
Select columns
select(stocks, symbol, volume)
## # A tibble: 3,033 × 2
## symbol volume
## <chr> <dbl>
## 1 NKE 5644100
## 2 NKE 4541800
## 3 NKE 4612400
## 4 NKE 6719900
## 5 NKE 4942200
## 6 NKE 5007500
## 7 NKE 5135300
## 8 NKE 6722400
## 9 NKE 5088500
## 10 NKE 4209200
## # ℹ 3,023 more rows
Add columns
mutate(stocks,
difference = high - low)%>%
select(symbol, difference)
## # A tibble: 3,033 × 2
## symbol difference
## <chr> <dbl>
## 1 NKE 1.19
## 2 NKE 1.69
## 3 NKE 0.970
## 4 NKE 1.93
## 5 NKE 1.29
## 6 NKE 1.02
## 7 NKE 1.17
## 8 NKE 1.52
## 9 NKE 1.54
## 10 NKE 1.22
## # ℹ 3,023 more rows
Summarize by groups
summarise(stocks, close = mean(close, na.rm = TRUE))
## # A tibble: 1 × 1
## close
## <dbl>
## 1 78.7