filter Select stock returns of January 31, 2020.In this exercise you will learn to plot data using the ggplot2 package. To answer the questions below, use Chapter 4.3 Categorical vs. Quantitative Data Visualization with R.
# Load packages
library(tidyquant)
library(tidyverse)
# Import stock prices
stock_prices <- tq_get(c("WMT", "TGT", "AMZN"), 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: 114 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 119. 0
## 2 WMT 2020-01-03 118. 119. 118. 118. 5399200 118. -0.00883
## 3 WMT 2020-01-06 117. 118. 117. 118. 6445500 118. -0.00204
## 4 WMT 2020-01-07 117. 118. 116. 117. 6846900 117. -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 116. -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 104 more rows
filter Select stock returns of January 31, 2020.library(dplyr)
filter(stock_returns, date == "2020-01-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-01-31 116. 116. 114. 114. 7775800 114. -0.0179
## 2 TGT 2020-01-31 113. 114. 110. 111. 6961900 110. -0.0343
## 3 AMZN 2020-01-31 2051. 2056. 2002. 2009. 15567300 2009. 0.0738
Hint: See the code in 1.2.2 Selecting observations.
Amazon was the only company to go positive so they performed the best on January 31st 2020. Hint: Answer the question by comparing daily returns of each stock on January 31, 2020.
ggplot(stock_returns,
aes(x = symbol,
y = daily.returns)) +
geom_boxplot() +
labs(title = "Return distribution by stock")
Hint: See the code in 4.3.3 Box plots. Add an appropriate title and labels for both axes.
The stock that performed the best this year was Amazon.
Hint: Answer the question by comparing median and outliers of each stock.
library(dplyr)
plotdata <- stock_returns %>%
group_by(symbol) %>%
summarize(mean_return = mean(daily.returns))
plotdata
## # A tibble: 3 x 2
## symbol mean_return
## <chr> <dbl>
## 1 AMZN 0.00126
## 2 TGT -0.00315
## 3 WMT -0.00113
Hint: See the code in 4.3.1 Bar chart (on summary statistics).
ggplot(plotdata,
aes(x = symbol,
y = mean_return)) +
geom_bar(stat = "identity")
Hint: See the code in 4.3.1 Bar chart (on summary statistics). Add an appropriate title and labels for both axes.
ggplot(stock_prices,
aes(x = date,
y = close,
col = symbol)) +
geom_line()
Hint: Google search something like “ggplot2 multiple lines”.
# Import stock prices
stock_prices <- tq_get(c("WMT", "TGT"), get = "stock.prices", from = "2020-01-01")
ggplot(stock_prices,
aes(x = date,
y = close, col = symbol)) +
geom_line()
Note: 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.