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