Load necessary libraries and datasets

library(quantmod)
library(readr)
library(pageviews)

Question 6

getSymbols("MSFT", src="yahoo",from = "2024-10-01", to = "2025-02-01")
## [1] "MSFT"
MSFT_Price <- MSFT
print(tail(MSFT_Price))
##            MSFT.Open MSFT.High MSFT.Low MSFT.Close MSFT.Volume MSFT.Adjusted
## 2025-01-24    445.16    446.65   441.40     444.06    15549500        444.06
## 2025-01-27    424.01    435.20   423.50     434.56    35647800        434.56
## 2025-01-28    434.60    448.38   431.38     447.20    23491700        447.20
## 2025-01-29    446.69    446.88   440.40     442.33    23581400        442.33
## 2025-01-30    418.77    422.86   413.16     414.99    54586300        414.99
## 2025-01-31    418.98    420.69   414.91     415.06    34223400        415.06

Question 7

getSymbols("MSFT", src="yahoo",from = "2024-10-01", to = "2025-02-01")
## [1] "MSFT"
print(nrow(MSFT))
## [1] 84

Question 8

max(MSFT$MSFT.Open)
## [1] 451.32
print(MSFT$MSFT.Open)
##            MSFT.Open
## 2024-10-01    428.45
## 2024-10-02    422.58
## 2024-10-03    417.63
## 2024-10-04    418.24
## 2024-10-07    416.00
## 2024-10-08    410.90
## 2024-10-09    415.86
## 2024-10-10    415.23
## 2024-10-11    416.14
## 2024-10-14    417.77
## 2024-10-15    422.18
## 2024-10-16    415.17
## 2024-10-17    422.36
## 2024-10-18    417.14
## 2024-10-21    416.12
## 2024-10-22    418.49
## 2024-10-23    430.86
## 2024-10-24    425.33
## 2024-10-25    426.76
## 2024-10-28    431.66
## 2024-10-29    428.00
## 2024-10-30    437.44
## 2024-10-31    415.36
## 2024-11-01    409.01
## 2024-11-04    409.80
## 2024-11-05    408.37
## 2024-11-06    412.42
## 2024-11-07    421.28
## 2024-11-08    425.32
## 2024-11-11    422.52
## 2024-11-12    418.25
## 2024-11-13    421.64
## 2024-11-14    425.00
## 2024-11-15    419.82
## 2024-11-18    414.87
## 2024-11-19    413.11
## 2024-11-20    416.87
## 2024-11-21    419.50
## 2024-11-22    411.37
## 2024-11-25    418.38
## 2024-11-26    419.59
## 2024-11-27    425.11
## 2024-11-29    420.09
## 2024-12-02    421.57
## 2024-12-03    429.84
## 2024-12-04    433.03
## 2024-12-05    437.92
## 2024-12-06    442.30
## 2024-12-09    442.60
## 2024-12-10    444.39
## 2024-12-11    444.05
## 2024-12-12    449.11
## 2024-12-13    448.44
## 2024-12-16    447.27
## 2024-12-17    451.01
## 2024-12-18    451.32
## 2024-12-19    441.62
## 2024-12-20    433.11
## 2024-12-23    436.74
## 2024-12-24    434.65
## 2024-12-26    439.08
## 2024-12-27    434.60
## 2024-12-30    426.06
## 2024-12-31    426.10
## 2025-01-02    425.53
## 2025-01-03    421.08
## 2025-01-06    428.00
## 2025-01-07    429.00
## 2025-01-08    423.46
## 2025-01-10    424.63
## 2025-01-13    415.24
## 2025-01-14    417.81
## 2025-01-15    419.13
## 2025-01-16    428.70
## 2025-01-17    434.09
## 2025-01-21    430.20
## 2025-01-22    437.56
## 2025-01-23    442.00
## 2025-01-24    445.16
## 2025-01-27    424.01
## 2025-01-28    434.60
## 2025-01-29    446.69
## 2025-01-30    418.77
## 2025-01-31    418.98
# print(MSFT$MSFT.Open, from = "2025-01-11", to = "2025-01-21")
# print(MSFT$MSFT.Open, from = "2024-10-21", to = "2024-10-29")
# print(MSFT$MSFT.Open, from = "2025-01-21", to = "2025-02-01")
# print(MSFT$MSFT.Open, from = "2024-12-09", to = "2024-12-18")

Question 9

MSFT_views <- article_pageviews("Microsoft", project = "en.wikipedia", start = "2024100100", end = "2025020100")
print(str(MSFT_views))
## 'data.frame':    124 obs. of  8 variables:
##  $ project    : chr  "wikipedia" "wikipedia" "wikipedia" "wikipedia" ...
##  $ language   : chr  "en" "en" "en" "en" ...
##  $ article    : chr  "Microsoft" "Microsoft" "Microsoft" "Microsoft" ...
##  $ access     : chr  "all-access" "all-access" "all-access" "all-access" ...
##  $ agent      : chr  "all-agents" "all-agents" "all-agents" "all-agents" ...
##  $ granularity: chr  "daily" "daily" "daily" "daily" ...
##  $ date       : POSIXct, format: "2024-10-01" "2024-10-02" ...
##  $ views      : num  8729 11914 8328 8717 10179 ...
## NULL

Question 10

totaldays <- (nrow(subset(MSFT_views, views > 30000)))
print(totaldays)
## [1] 1

Question 11

str(MSFT_Price)
## An xts object on 2024-10-01 / 2025-01-31 containing: 
##   Data:    double [84, 6]
##   Columns: MSFT.Open, MSFT.High, MSFT.Low, MSFT.Close, MSFT.Volume ... with 1 more column
##   Index:   Date [84] (TZ: "UTC")
##   xts Attributes:
##     $ src    : chr "yahoo"
##     $ updated: POSIXct[1:1], format: "2025-02-11 23:22:25"
str(MSFT_views)
## 'data.frame':    124 obs. of  8 variables:
##  $ project    : chr  "wikipedia" "wikipedia" "wikipedia" "wikipedia" ...
##  $ language   : chr  "en" "en" "en" "en" ...
##  $ article    : chr  "Microsoft" "Microsoft" "Microsoft" "Microsoft" ...
##  $ access     : chr  "all-access" "all-access" "all-access" "all-access" ...
##  $ agent      : chr  "all-agents" "all-agents" "all-agents" "all-agents" ...
##  $ granularity: chr  "daily" "daily" "daily" "daily" ...
##  $ date       : POSIXct, format: "2024-10-01" "2024-10-02" ...
##  $ views      : num  8729 11914 8328 8717 10179 ...
# Not a workable merge due to the irregularity of each data set's amount of observations (124 vs 84 obs.)