Import stock prices
stocks <- tq_get(c("AMZN", "TGT", "WMT"),
get = "stock.prices",
from = "2013-01-01",
to = "2014-01-01")
stocks
## # A tibble: 756 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AMZN 2013-01-02 12.8 12.9 12.7 12.9 65420000 12.9
## 2 AMZN 2013-01-03 12.9 13.0 12.8 12.9 55018000 12.9
## 3 AMZN 2013-01-04 12.9 13.0 12.8 13.0 37484000 13.0
## 4 AMZN 2013-01-07 13.1 13.5 13.1 13.4 98200000 13.4
## 5 AMZN 2013-01-08 13.4 13.4 13.2 13.3 60214000 13.3
## 6 AMZN 2013-01-09 13.4 13.5 13.3 13.3 45312000 13.3
## 7 AMZN 2013-01-10 13.4 13.4 13.1 13.3 57268000 13.3
## 8 AMZN 2013-01-11 13.3 13.4 13.2 13.4 48266000 13.4
## 9 AMZN 2013-01-14 13.4 13.7 13.4 13.6 85500000 13.6
## 10 AMZN 2013-01-15 13.5 13.6 13.5 13.6 46538000 13.6
## # … with 746 more rows
Plot stock prices
stocks %>%
ggplot(aes(x = date, y = adjusted, color = symbol)) +
geom_line()

Apply the dplyr vebs to you learned in chapter 5
Filter rows
stocks %>% filter(adjusted > 24)
## # A tibble: 504 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TGT 2013-01-02 58.6 59.2 58.0 58.8 9523000 44.9
## 2 TGT 2013-01-03 60.5 60.8 59.5 60.2 10665800 45.9
## 3 TGT 2013-01-04 60.7 60.8 59.9 60.6 5249300 46.3
## 4 TGT 2013-01-07 60.5 61.4 60.4 61.3 4896500 46.8
## 5 TGT 2013-01-08 61.1 61.1 60.3 60.6 4928700 46.3
## 6 TGT 2013-01-09 60.7 60.8 60.1 60.2 4431400 45.9
## 7 TGT 2013-01-10 60.4 60.5 59.9 60.3 4747500 46.0
## 8 TGT 2013-01-11 60.2 60.5 60.0 60.1 4481800 45.9
## 9 TGT 2013-01-14 60.0 60.5 59.7 60.4 4444800 46.1
## 10 TGT 2013-01-15 60.4 61.5 60.2 61.1 4692200 46.6
## # … with 494 more rows
Arrange rows
arrange(stocks, desc(date), high, low)
## # A tibble: 756 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AMZN 2013-12-31 19.7 19.9 19.7 19.9 39930000 19.9
## 2 TGT 2013-12-31 62.6 63.8 62.5 63.3 6783400 49.5
## 3 WMT 2013-12-31 78.7 78.9 78.3 78.7 3859100 64.8
## 4 AMZN 2013-12-30 20.0 20.0 19.6 19.7 49742000 19.7
## 5 TGT 2013-12-30 62.5 62.5 61.9 62.5 3683000 48.8
## 6 WMT 2013-12-30 78.6 78.9 78.4 78.6 3086500 64.8
## 7 AMZN 2013-12-27 20.2 20.3 19.8 19.9 39738000 19.9
## 8 TGT 2013-12-27 62.8 62.8 62.0 62.2 3260100 48.6
## 9 WMT 2013-12-27 78.6 78.9 78.3 78.5 3050000 64.6
## 10 AMZN 2013-12-26 20.1 20.2 19.8 20.2 37370000 20.2
## # … with 746 more rows
Select columns
select(stocks, date:adjusted)
## # A tibble: 756 × 7
## date open high low close volume adjusted
## <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2013-01-02 12.8 12.9 12.7 12.9 65420000 12.9
## 2 2013-01-03 12.9 13.0 12.8 12.9 55018000 12.9
## 3 2013-01-04 12.9 13.0 12.8 13.0 37484000 13.0
## 4 2013-01-07 13.1 13.5 13.1 13.4 98200000 13.4
## 5 2013-01-08 13.4 13.4 13.2 13.3 60214000 13.3
## 6 2013-01-09 13.4 13.5 13.3 13.3 45312000 13.3
## 7 2013-01-10 13.4 13.4 13.1 13.3 57268000 13.3
## 8 2013-01-11 13.3 13.4 13.2 13.4 48266000 13.4
## 9 2013-01-14 13.4 13.7 13.4 13.6 85500000 13.6
## 10 2013-01-15 13.5 13.6 13.5 13.6 46538000 13.6
## # … with 746 more rows
select(stocks, date, high, low)
## # A tibble: 756 × 3
## date high low
## <date> <dbl> <dbl>
## 1 2013-01-02 12.9 12.7
## 2 2013-01-03 13.0 12.8
## 3 2013-01-04 13.0 12.8
## 4 2013-01-07 13.5 13.1
## 5 2013-01-08 13.4 13.2
## 6 2013-01-09 13.5 13.3
## 7 2013-01-10 13.4 13.1
## 8 2013-01-11 13.4 13.2
## 9 2013-01-14 13.7 13.4
## 10 2013-01-15 13.6 13.5
## # … with 746 more rows
Add columns
mutate(stocks,
gain = open + high) %>%
# Select stocks, date, high, low, and gain
select(date:high, low)
## # A tibble: 756 × 4
## date open high low
## <date> <dbl> <dbl> <dbl>
## 1 2013-01-02 12.8 12.9 12.7
## 2 2013-01-03 12.9 13.0 12.8
## 3 2013-01-04 12.9 13.0 12.8
## 4 2013-01-07 13.1 13.5 13.1
## 5 2013-01-08 13.4 13.4 13.2
## 6 2013-01-09 13.4 13.5 13.3
## 7 2013-01-10 13.4 13.4 13.1
## 8 2013-01-11 13.3 13.4 13.2
## 9 2013-01-14 13.4 13.7 13.4
## 10 2013-01-15 13.5 13.6 13.5
## # … with 746 more rows
Summarise with groups
stocks %>%
#Group by corporations
group_by(symbol) %>%
# Calculate average departure delay
summarise(average_high = mean(high, na.rm = TRUE))
## # A tibble: 3 × 2
## symbol average_high
## <chr> <dbl>
## 1 AMZN 15.0
## 2 TGT 66.7
## 3 WMT 75.7