stocks <- tq_get(c("TSLA", "AMZN"),
get = "stock.prices",
from = "2016-01-01",
to = "2017-01-01")
stocks
## # A tibble: 504 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2016-01-04 15.4 15.4 14.6 14.9 102406500 14.9
## 2 TSLA 2016-01-05 15.1 15.1 14.7 14.9 47802000 14.9
## 3 TSLA 2016-01-06 14.7 14.7 14.4 14.6 56686500 14.6
## 4 TSLA 2016-01-07 14.3 14.6 14.2 14.4 53314500 14.4
## 5 TSLA 2016-01-08 14.5 14.7 14.1 14.1 54421500 14.1
## 6 TSLA 2016-01-11 14.3 14.3 13.5 13.9 61371000 13.9
## 7 TSLA 2016-01-12 14.1 14.2 13.7 14.0 46378500 14.0
## 8 TSLA 2016-01-13 14.1 14.2 13.3 13.4 61896000 13.4
## 9 TSLA 2016-01-14 13.5 14 12.9 13.7 97360500 13.7
## 10 TSLA 2016-01-15 13.3 13.7 13.2 13.7 83679000 13.7
## # … with 494 more rows
stocks %>%
ggplot(aes(x = date, y = adjusted, color = symbol)) +
geom_line()
################################################ # Apply the dplyr verbs
you learned in chapter 5
################################################
stocks %>% filter(adjusted > 14)
## # A tibble: 372 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 TSLA 2016-01-04 15.4 15.4 14.6 14.9 102406500 14.9
## 2 TSLA 2016-01-05 15.1 15.1 14.7 14.9 47802000 14.9
## 3 TSLA 2016-01-06 14.7 14.7 14.4 14.6 56686500 14.6
## 4 TSLA 2016-01-07 14.3 14.6 14.2 14.4 53314500 14.4
## 5 TSLA 2016-01-08 14.5 14.7 14.1 14.1 54421500 14.1
## 6 TSLA 2016-03-14 14.2 14.4 14.0 14.3 60985500 14.3
## 7 TSLA 2016-03-15 14.3 14.6 14.1 14.6 47707500 14.6
## 8 TSLA 2016-03-16 14.5 14.8 14.5 14.8 52750500 14.8
## 9 TSLA 2016-03-17 14.8 15.2 14.7 15.1 56743500 15.1
## 10 TSLA 2016-03-18 15.3 15.6 15.2 15.5 70677000 15.5
## # … with 362 more rows
stocks %>% arrange(stocks, desc(date), desc(close))
## # A tibble: 504 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AMZN 2016-01-04 32.8 32.9 31.4 31.8 186290000 31.8
## 2 AMZN 2016-01-05 32.3 32.3 31.4 31.7 116452000 31.7
## 3 AMZN 2016-01-06 31.1 32.0 31.0 31.6 106584000 31.6
## 4 AMZN 2016-01-07 31.1 31.5 30.3 30.4 141498000 30.4
## 5 AMZN 2016-01-08 31.0 31.2 30.3 30.4 110258000 30.4
## 6 AMZN 2016-01-11 30.6 31.0 29.9 30.9 97832000 30.9
## 7 AMZN 2016-01-12 31.3 31.3 30.6 30.9 94482000 30.9
## 8 AMZN 2016-01-13 31.0 31.0 29.0 29.1 153104000 29.1
## 9 AMZN 2016-01-14 29.0 30.1 28.5 29.6 144760000 29.6
## 10 AMZN 2016-01-15 28.6 29.2 28.3 28.5 155690000 28.5
## # … with 494 more rows
stocks %>% select(symbol, open, close)
## # A tibble: 504 × 3
## symbol open close
## <chr> <dbl> <dbl>
## 1 TSLA 15.4 14.9
## 2 TSLA 15.1 14.9
## 3 TSLA 14.7 14.6
## 4 TSLA 14.3 14.4
## 5 TSLA 14.5 14.1
## 6 TSLA 14.3 13.9
## 7 TSLA 14.1 14.0
## 8 TSLA 14.1 13.4
## 9 TSLA 13.5 13.7
## 10 TSLA 13.3 13.7
## # … with 494 more rows
stocks %>% select(symbol, close, volume)
## # A tibble: 504 × 3
## symbol close volume
## <chr> <dbl> <dbl>
## 1 TSLA 14.9 102406500
## 2 TSLA 14.9 47802000
## 3 TSLA 14.6 56686500
## 4 TSLA 14.4 53314500
## 5 TSLA 14.1 54421500
## 6 TSLA 13.9 61371000
## 7 TSLA 14.0 46378500
## 8 TSLA 13.4 61896000
## 9 TSLA 13.7 97360500
## 10 TSLA 13.7 83679000
## # … with 494 more rows
stocks %>% select(symbol, high, low)
## # A tibble: 504 × 3
## symbol high low
## <chr> <dbl> <dbl>
## 1 TSLA 15.4 14.6
## 2 TSLA 15.1 14.7
## 3 TSLA 14.7 14.4
## 4 TSLA 14.6 14.2
## 5 TSLA 14.7 14.1
## 6 TSLA 14.3 13.5
## 7 TSLA 14.2 13.7
## 8 TSLA 14.2 13.3
## 9 TSLA 14 12.9
## 10 TSLA 13.7 13.2
## # … with 494 more rows
mutate(stocks,
symbol, gain = open - close) %>%
select(symbol:open, close, gain)
## # A tibble: 504 × 5
## symbol date open close gain
## <chr> <date> <dbl> <dbl> <dbl>
## 1 TSLA 2016-01-04 15.4 14.9 0.487
## 2 TSLA 2016-01-05 15.1 14.9 0.195
## 3 TSLA 2016-01-06 14.7 14.6 0.0640
## 4 TSLA 2016-01-07 14.3 14.4 -0.0973
## 5 TSLA 2016-01-08 14.5 14.1 0.457
## 6 TSLA 2016-01-11 14.3 13.9 0.411
## 7 TSLA 2016-01-12 14.1 14.0 0.109
## 8 TSLA 2016-01-13 14.1 13.4 0.780
## 9 TSLA 2016-01-14 13.5 13.7 -0.265
## 10 TSLA 2016-01-15 13.3 13.7 -0.401
## # … with 494 more rows
stocks %>%
group_by(symbol) %>%
summarise(stocks, return = mean(open - close), na.rm = TRUE )
## Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
## dplyr 1.1.0.
## ℹ Please use `reframe()` instead.
## ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
## always returns an ungrouped data frame and adjust accordingly.
## `summarise()` has grouped output by 'symbol'. You can override using the
## `.groups` argument.
## # A tibble: 1,008 × 10
## # Groups: symbol [2]
## symbol date open high low close volume adjusted return na.rm
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <lgl>
## 1 TSLA 2016-01-04 15.4 15.4 14.6 14.9 102406500 14.9 0.0155 TRUE
## 2 TSLA 2016-01-05 15.1 15.1 14.7 14.9 47802000 14.9 0.0155 TRUE
## 3 TSLA 2016-01-06 14.7 14.7 14.4 14.6 56686500 14.6 0.0155 TRUE
## 4 TSLA 2016-01-07 14.3 14.6 14.2 14.4 53314500 14.4 0.0155 TRUE
## 5 TSLA 2016-01-08 14.5 14.7 14.1 14.1 54421500 14.1 0.0155 TRUE
## 6 TSLA 2016-01-11 14.3 14.3 13.5 13.9 61371000 13.9 0.0155 TRUE
## 7 TSLA 2016-01-12 14.1 14.2 13.7 14.0 46378500 14.0 0.0155 TRUE
## 8 TSLA 2016-01-13 14.1 14.2 13.3 13.4 61896000 13.4 0.0155 TRUE
## 9 TSLA 2016-01-14 13.5 14 12.9 13.7 97360500 13.7 0.0155 TRUE
## 10 TSLA 2016-01-15 13.3 13.7 13.2 13.7 83679000 13.7 0.0155 TRUE
## # … with 998 more rows