filter select stock returns of March 31, 2020.filter Create the same line plot as in Q7, but without Microsoft.# Load packages
library(tidyquant)
library(tidyverse)
# Import stock prices
stock_prices <- tq_get(c("WMT", "TGT", "MSFT"), get = "stock.prices", from = "2020-01-01")
# Calculate daily returns
stock_returns <-
stock_prices %>%
group_by(symbol) %>%
tq_mutate(select = adjusted, mutate_fun = periodReturn, period = "daily")
stock_returns
## # A tibble: 258 x 9
## # Groups: symbol [3]
## symbol date open high low close volume adjusted daily.returns
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 WMT 2020-01-02 119. 120. 119. 119. 6764900 118. 0
## 2 WMT 2020-01-03 118. 119. 118. 118. 5399200 117. -0.00883
## 3 WMT 2020-01-06 117. 118. 117. 118. 6445500 117. -0.00204
## 4 WMT 2020-01-07 117. 118. 116. 117. 6846900 116. -0.00926
## 5 WMT 2020-01-08 116. 117. 116. 116. 5875800 116. -0.00343
## 6 WMT 2020-01-09 116. 117. 116. 117. 5563700 117. 0.0103
## 7 WMT 2020-01-10 117. 117. 116. 116. 6054800 116. -0.00835
## 8 WMT 2020-01-13 116. 117. 115. 116. 6112600 115. -0.00430
## 9 WMT 2020-01-14 115. 116. 115. 116. 6585800 116. 0.00259
## 10 WMT 2020-01-15 115. 116. 115. 115. 7454200 115. -0.00775
## # … with 248 more rows
filter select stock returns of March 31, 2020.Hint: See the code in 1.2.2 Selecting observations.
filter(stock_returns, date == "2020-03-31")
## # A tibble: 3 x 9
## # Groups: symbol [3]
## symbol date open high low close volume adjusted daily.returns
## <chr> <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 WMT 2020-03-31 114. 116. 113. 114. 8752800 114. -0.0136
## 2 TGT 2020-03-31 95.3 96.8 92.2 93.0 6388400 93.0 -0.0317
## 3 MSFT 2020-03-31 159. 165. 157. 158. 77927200 158. -0.0157
Hint: Answer the question by comparing daily returns of each stock on March 31, 2020.
WMT had the best preforming stocks on March 31,2020. they had the lowest amount of returns at -0.0136.
Hint: See the code in 4.3.3 Box plots. Add an appropriate title and labels for both axes.
ggplot(stock_returns, aes(x = symbol,
y = daily.returns)) +
geom_boxplot() +
labs(title = "Daily distributions by stock")
Hint: Answer the question by comparing median and outliers of each stock.
Based on the boxplot MSFT was doing the best because their median for daily returns was the lowest and below 0. They also had the least amount of outliers meaning they have a lower amount of stocks that are returned. This shows that at that time they were doing better than TGT and WMT.
Hint: See the code in 4.3.1 Bar chart (on summary statistics).
plotdata <- stock_returns %>%
group_by(symbol) %>%
summarize(mean_return = mean(daily.returns))
plotdata
## # A tibble: 3 x 2
## symbol mean_return
## <chr> <dbl>
## 1 MSFT 0.00220
## 2 TGT -0.000778
## 3 WMT 0.00101
Hint: See the code in 4.3.1 Bar chart (on summary statistics). Add an appropriate title and labels for both axes.
ggplot(plotdata,
aes(x = symbol,
y = mean_return)) + geom_bar(stat = "identity")
labs(title = "Daily Returns", subtitle = "March 31 stock returns")
## $title
## [1] "Daily Returns"
##
## $subtitle
## [1] "March 31 stock returns"
##
## attr(,"class")
## [1] "labels"
Hint: Google search something like “ggplot2 multiple lines”.
ggplot(stock_prices,
aes(x = date,
y = close,
color = symbol)) +
geom_line()
filter Create the same line plot as in Q7, but without Microsoft.Note: Insert a new code chunk below, copy and paste the code in Q7, and revise it using the dplyr::filter function. This is an extra credit question worth 10 points. However, the total number of points you could earn for this quiz is capped at 100 points. In other words, the extra credit can only offset any one question you missed in the first seven questions.
Hint: Use message, echo and results in the chunk options. Refer to the RMarkdown Reference Guide.