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