stocks <- tq_get(c("HD", "LOW", "AMZN"),
get = "stock.prices",
from = "2016-01-01")
stocks
## # A tibble: 5,364 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 HD 2016-01-04 130. 131. 129. 131. 8050900 111.
## 2 HD 2016-01-05 131. 132. 130. 130. 5320900 111.
## 3 HD 2016-01-06 129 130. 129. 129. 8199600 110.
## 4 HD 2016-01-07 127. 128. 125. 125. 12551000 107.
## 5 HD 2016-01-08 126. 127. 124. 124. 7104500 105.
## 6 HD 2016-01-11 125. 126. 124. 126. 6811600 107.
## 7 HD 2016-01-12 127. 129. 126. 127. 5695700 108.
## 8 HD 2016-01-13 127. 127. 121. 121. 8932200 103.
## 9 HD 2016-01-14 121. 122. 118. 120. 13389100 102.
## 10 HD 2016-01-15 117. 121. 116. 119. 10515000 101.
## # … with 5,354 more rows
stocks %>%
ggplot(aes(x = date, y = adjusted, color = symbol)) +
geom_line()
stocks %>% filter(adjusted > 24)
## # A tibble: 5,364 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 HD 2016-01-04 130. 131. 129. 131. 8050900 111.
## 2 HD 2016-01-05 131. 132. 130. 130. 5320900 111.
## 3 HD 2016-01-06 129 130. 129. 129. 8199600 110.
## 4 HD 2016-01-07 127. 128. 125. 125. 12551000 107.
## 5 HD 2016-01-08 126. 127. 124. 124. 7104500 105.
## 6 HD 2016-01-11 125. 126. 124. 126. 6811600 107.
## 7 HD 2016-01-12 127. 129. 126. 127. 5695700 108.
## 8 HD 2016-01-13 127. 127. 121. 121. 8932200 103.
## 9 HD 2016-01-14 121. 122. 118. 120. 13389100 102.
## 10 HD 2016-01-15 117. 121. 116. 119. 10515000 101.
## # … with 5,354 more rows
arrange(stocks, date, open)
## # A tibble: 5,364 × 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 LOW 2016-01-04 74.7 75.6 74.5 75.3 6534600 66.1
## 3 HD 2016-01-04 130. 131. 129. 131. 8050900 111.
## 4 AMZN 2016-01-05 32.3 32.3 31.4 31.7 116452000 31.7
## 5 LOW 2016-01-05 75.4 76.5 74.9 75.4 5198800 66.2
## 6 HD 2016-01-05 131. 132. 130. 130. 5320900 111.
## 7 AMZN 2016-01-06 31.1 32.0 31.0 31.6 106584000 31.6
## 8 LOW 2016-01-06 74.5 74.8 73.4 73.9 5326500 64.9
## 9 HD 2016-01-06 129 130. 129. 129. 8199600 110.
## 10 AMZN 2016-01-07 31.1 31.5 30.3 30.4 141498000 30.4
## # … with 5,354 more rows
##Select columns
select(stocks, symbol, date, high, low)
## # A tibble: 5,364 × 4
## symbol date high low
## <chr> <date> <dbl> <dbl>
## 1 HD 2016-01-04 131. 129.
## 2 HD 2016-01-05 132. 130.
## 3 HD 2016-01-06 130. 129.
## 4 HD 2016-01-07 128. 125.
## 5 HD 2016-01-08 127. 124.
## 6 HD 2016-01-11 126. 124.
## 7 HD 2016-01-12 129. 126.
## 8 HD 2016-01-13 127. 121.
## 9 HD 2016-01-14 122. 118.
## 10 HD 2016-01-15 121. 116.
## # … with 5,354 more rows
mutate(stocks,
gain = open - close) %>%
select(symbol:open, close, gain)
## # A tibble: 5,364 × 5
## symbol date open close gain
## <chr> <date> <dbl> <dbl> <dbl>
## 1 HD 2016-01-04 130. 131. -0.960
## 2 HD 2016-01-05 131. 130. 0.720
## 3 HD 2016-01-06 129 129. -0.0800
## 4 HD 2016-01-07 127. 125. 1.53
## 5 HD 2016-01-08 126. 124. 2.54
## 6 HD 2016-01-11 125. 126. -0.910
## 7 HD 2016-01-12 127. 127. -0.710
## 8 HD 2016-01-13 127. 121. 6.07
## 9 HD 2016-01-14 121. 120. 1.67
## 10 HD 2016-01-15 117. 119. -2.11
## # … with 5,354 more rows
stocks
## # A tibble: 5,364 × 8
## symbol date open high low close volume adjusted
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 HD 2016-01-04 130. 131. 129. 131. 8050900 111.
## 2 HD 2016-01-05 131. 132. 130. 130. 5320900 111.
## 3 HD 2016-01-06 129 130. 129. 129. 8199600 110.
## 4 HD 2016-01-07 127. 128. 125. 125. 12551000 107.
## 5 HD 2016-01-08 126. 127. 124. 124. 7104500 105.
## 6 HD 2016-01-11 125. 126. 124. 126. 6811600 107.
## 7 HD 2016-01-12 127. 129. 126. 127. 5695700 108.
## 8 HD 2016-01-13 127. 127. 121. 121. 8932200 103.
## 9 HD 2016-01-14 121. 122. 118. 120. 13389100 102.
## 10 HD 2016-01-15 117. 121. 116. 119. 10515000 101.
## # … with 5,354 more rows
summarise(stocks, return = mean((open - close), na.rm = TRUE))
## # A tibble: 1 × 1
## return
## <dbl>
## 1 -0.0256
stocks %>%
summarise(return = mean((open - close)))
## # A tibble: 1 × 1
## return
## <dbl>
## 1 -0.0256
stocks %>%
group_by(symbol) %>%
summarise(return = mean((open - close)))
## # A tibble: 3 × 2
## symbol return
## <chr> <dbl>
## 1 AMZN 0.0512
## 2 HD -0.101
## 3 LOW -0.0264