Import stock prices

stocks <- tq_get(c("DELL", "NVDA"),
                 get = "stock.prices",
                 from = "2024-09-04")
stocks
## # A tibble: 510 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 DELL   2024-09-04  109   111.  107.  109.  8113600     107.
##  2 DELL   2024-09-05  107   108.  105.  107.  9362400     105.
##  3 DELL   2024-09-06  107.  108.  101.  102  11962600     100.
##  4 DELL   2024-09-09  107.  108.  105.  106. 18742700     104.
##  5 DELL   2024-09-10  106.  108.  105.  107.  9367400     105.
##  6 DELL   2024-09-11  107.  109.  106.  109.  9715100     107.
##  7 DELL   2024-09-12  109.  113.  109.  112.  9893500     110.
##  8 DELL   2024-09-13  112.  115.  111.  114.  7353300     112.
##  9 DELL   2024-09-16  112.  116.  112.  115.  8618900     113.
## 10 DELL   2024-09-17  118.  118.  115.  117.  9412700     115.
## # ℹ 500 more rows

Plot stock prices

stocks %>%
    
    ggplot(aes(x = date, y = adjusted, color = symbol)) +
    geom_line()

Filter Rows

stocks %>% filter(open > 105)
## # A tibble: 437 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 DELL   2024-09-04  109   111.  107.  109.  8113600     107.
##  2 DELL   2024-09-05  107   108.  105.  107.  9362400     105.
##  3 DELL   2024-09-06  107.  108.  101.  102  11962600     100.
##  4 DELL   2024-09-09  107.  108.  105.  106. 18742700     104.
##  5 DELL   2024-09-10  106.  108.  105.  107.  9367400     105.
##  6 DELL   2024-09-11  107.  109.  106.  109.  9715100     107.
##  7 DELL   2024-09-12  109.  113.  109.  112.  9893500     110.
##  8 DELL   2024-09-13  112.  115.  111.  114.  7353300     112.
##  9 DELL   2024-09-16  112.  116.  112.  115.  8618900     113.
## 10 DELL   2024-09-17  118.  118.  115.  117.  9412700     115.
## # ℹ 427 more rows

Arrange Row

arrange(stocks, desc(high))
## # A tibble: 510 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 NVDA   2025-08-12  183.  184.  179.  183. 145485700     183.
##  2 NVDA   2025-08-28  181.  184.  176.  180. 281787800     180.
##  3 NVDA   2025-08-13  183.  184.  179.  182. 179871700     182.
##  4 NVDA   2025-08-07  182.  184.  179.  181. 151878400     181.
##  5 NVDA   2025-08-11  182.  184.  180.  182. 138323200     182.
##  6 NVDA   2025-07-31  183.  183.  176.  178. 221685400     178.
##  7 NVDA   2025-08-08  182.  183.  180.  183. 123396700     183.
##  8 NVDA   2025-08-14  180.  183.  179.  182. 129554000     182.
##  9 NVDA   2025-08-18  181.  183.  181.  182. 132008000     182.
## 10 NVDA   2025-08-19  182.  182.  175.  176. 185229200     176.
## # ℹ 500 more rows

Select Columns

select(stocks, high, low, volume)
## # A tibble: 510 × 3
##     high   low   volume
##    <dbl> <dbl>    <dbl>
##  1  111.  107.  8113600
##  2  108.  105.  9362400
##  3  108.  101. 11962600
##  4  108.  105. 18742700
##  5  108.  105.  9367400
##  6  109.  106.  9715100
##  7  113.  109.  9893500
##  8  115.  111.  7353300
##  9  116.  112.  8618900
## 10  118.  115.  9412700
## # ℹ 500 more rows

Add Columns

mutate(stocks, difference = high - low)
## # A tibble: 510 × 9
##    symbol date        open  high   low close   volume adjusted difference
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>      <dbl>
##  1 DELL   2024-09-04  109   111.  107.  109.  8113600     107.       3.24
##  2 DELL   2024-09-05  107   108.  105.  107.  9362400     105.       3.17
##  3 DELL   2024-09-06  107.  108.  101.  102  11962600     100.       6.80
##  4 DELL   2024-09-09  107.  108.  105.  106. 18742700     104.       2.55
##  5 DELL   2024-09-10  106.  108.  105.  107.  9367400     105.       2.11
##  6 DELL   2024-09-11  107.  109.  106.  109.  9715100     107.       3.35
##  7 DELL   2024-09-12  109.  113.  109.  112.  9893500     110.       4.63
##  8 DELL   2024-09-13  112.  115.  111.  114.  7353300     112.       3.25
##  9 DELL   2024-09-16  112.  116.  112.  115.  8618900     113.       3.57
## 10 DELL   2024-09-17  118.  118.  115.  117.  9412700     115.       3.27
## # ℹ 500 more rows

Summarize with groups

summarize(stocks, mean(open))
## # A tibble: 1 × 1
##   `mean(open)`
##          <dbl>
## 1         126.