Import stock prices

stocks <- tq_get(c("NVDA", "AMD", "INTC"),
                 get = "stock.prices",
                 from = "2016-01-01",
                 to = "2017-01-01")
stocks
## # A tibble: 756 × 8
##    symbol date        open  high   low close    volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>     <dbl>    <dbl>
##  1 NVDA   2016-01-04 0.807 0.814 0.801 0.809 358076000    0.790
##  2 NVDA   2016-01-05 0.825 0.836 0.812 0.822 490272000    0.803
##  3 NVDA   2016-01-06 0.809 0.812 0.779 0.788 449344000    0.769
##  4 NVDA   2016-01-07 0.768 0.774 0.747 0.757 645304000    0.739
##  5 NVDA   2016-01-08 0.767 0.767 0.739 0.741 398472000    0.723
##  6 NVDA   2016-01-11 0.742 0.747 0.729 0.742 409372000    0.724
##  7 NVDA   2016-01-12 0.755 0.766 0.749 0.754 469356000    0.736
##  8 NVDA   2016-01-13 0.760 0.765 0.731 0.732 481672000    0.714
##  9 NVDA   2016-01-14 0.716 0.725 0.696 0.717 600236000    0.700
## 10 NVDA   2016-01-15 0.688 0.696 0.666 0.678 841452000    0.662
## # ℹ 746 more rows

Plot stock prices

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

Apply it to your data 2

Filter rows

stocks %>% filter(adjusted > 24)
## # A tibble: 221 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 INTC   2016-01-04  33.9  34.0  33.5  34.0 27882200     26.9
##  2 INTC   2016-01-05  34.0  34    33.5  33.8 16709500     26.7
##  3 INTC   2016-01-06  33.2  33.5  32.8  33.1 25491300     26.1
##  4 INTC   2016-01-07  32.3  33.0  31.8  31.8 37680500     25.2
##  5 INTC   2016-01-08  32.1  32.2  31.4  31.5 29953800     24.9
##  6 INTC   2016-01-11  31.8  32.2  31.7  32.1 27732400     25.3
##  7 INTC   2016-01-12  32.8  32.9  32.3  32.7 28587700     25.8
##  8 INTC   2016-01-13  32.8  32.9  31.8  31.9 34445700     25.2
##  9 INTC   2016-01-14  32.0  32.9  31.8  32.7 48728200     25.9
## 10 INTC   2016-01-29  30.2  31.0  30.1  31.0 38311400     24.5
## # ℹ 211 more rows

Arrange rows

arrange(stocks, desc(open), desc(close))
## # A tibble: 756 × 8
##    symbol date        open  high   low close   volume adjusted
##    <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1 INTC   2016-10-10  38.2  38.4  37.9  38.0 14954300     30.8
##  2 INTC   2016-10-07  38.1  38.2  37.8  38.1 16942500     30.9
##  3 INTC   2016-10-18  38.0  38.0  37.5  37.8 42907800     30.6
##  4 INTC   2016-10-11  37.9  38    36.8  37.3 27650500     30.2
##  5 INTC   2016-10-06  37.8  38.2  37.6  38.1 15171400     30.8
##  6 INTC   2016-10-04  37.8  37.9  37.3  37.5 14393100     30.4
##  7 INTC   2016-10-05  37.8  38.3  37.6  38.0 22420800     30.8
##  8 INTC   2016-09-16  37.7  38.0  37.2  37.7 74577900     30.5
##  9 INTC   2016-10-03  37.7  38.0  37.5  37.7 14113600     30.5
## 10 INTC   2016-09-19  37.7  38.0  37.1  37.2 30531700     30.1
## # ℹ 746 more rows

Select columns

select(stocks, high: low)
## # A tibble: 756 × 2
##     high   low
##    <dbl> <dbl>
##  1 0.814 0.801
##  2 0.836 0.812
##  3 0.812 0.779
##  4 0.774 0.747
##  5 0.767 0.739
##  6 0.747 0.729
##  7 0.766 0.749
##  8 0.765 0.731
##  9 0.725 0.696
## 10 0.696 0.666
## # ℹ 746 more rows

Add columns

mutate(stocks,
       gain = open - close) %>%
    select(open:close, adjusted)
## # A tibble: 756 × 5
##     open  high   low close adjusted
##    <dbl> <dbl> <dbl> <dbl>    <dbl>
##  1 0.807 0.814 0.801 0.809    0.790
##  2 0.825 0.836 0.812 0.822    0.803
##  3 0.809 0.812 0.779 0.788    0.769
##  4 0.768 0.774 0.747 0.757    0.739
##  5 0.767 0.767 0.739 0.741    0.723
##  6 0.742 0.747 0.729 0.742    0.724
##  7 0.755 0.766 0.749 0.754    0.736
##  8 0.760 0.765 0.731 0.732    0.714
##  9 0.716 0.725 0.696 0.717    0.700
## 10 0.688 0.696 0.666 0.678    0.662
## # ℹ 746 more rows

Summarise with groups