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