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("AAPL", "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

Q1 Plot the distribution of daily returns by stock using kernel density plots.

Hint: See the code in 4.3.2 Grouped kernel density plots.

ggplot(stock_returns, 
       aes(x = daily.returns, 
           fill = symbol)) +
  geom_density(alpha = 0.4) +
  labs(title = "Daily return distribution by stock")

Q2 Plot the distribution of daily returns by stock using boxplots.

Hint: See the code in 4.3.3 Box plots. Use the same title as in the density plot.

ggplot(stock_returns, 
       aes(x = symbol, 
           y = daily.returns)) +
  geom_boxplot() +
  labs(title = "Daily return distribution by stock")

Q3 Based on the boxplot above, which of the two stocks would you invest in?

Hint: Discuss your answer based on median, the middle 50%, roughly 99% of the data, and outliers.

I would invest in Microsoft. Apple has a bigger chance of losing money than Microsoft. Microsoft is lower on the first graph we completed.

Q4 Calculate mean daily returns for each stock.

Hint: See the code in 4.3.1 Bar chart (on summary statistics).

library(dplyr)
plotdata <- stock_returns %>%
  group_by(symbol) %>%
  summarize(mean_return = mean(daily.returns))
plotdata

Q5 Plot mean daily returns using bar charts.

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")

plotdata

Q6 Add the color (cornflowerblue) to the bar chart.

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",
            fill = "cornflowerblue")

Q7 Label the bars with mean daily returns.

Hint: See the code in 4.3.1 Bar chart (on summary statistics).

library(scales)
ggplot(plotdata, 
       aes(x = symbol, 
           y = mean_return)) +
  geom_bar(stat = "identity",
            fill = "cornflowerblue") +
  geom_text(aes(label = percent(mean_return)), 
            vjust = -0.25)

## Q8 Hide the messages, the code, and its results on the webpage. Hint: Use message, echo and results in the chunk options. Refer to the RMarkdown Reference Guide.

Q9 Display the title and your name correctly at the top of the webpage.

Q10 Use the correct slug.