Alden Felix
  • Home
  • Resume
  • Projects
    • Predicting Interstate Affinity using Machine Learning/Database Building
    • Effect of Road Classification on Alcohol Related Crash Severity
    • Exploring Human Mobility Patterns Using Twitter Data
    • Natural Language Processing of Tweets to Explore Mental Health
  • Fall 2022
    • EPPS 6302 Data Collection & Production
    • Assignment 2
    • Assignment 3
    • Assignment 4
    • EPPS 6356 Data Visualization
    • Assignment 1
    • Assignment 2
    • Assignment 3
    • Assignment 4
    • Assignment 6
    • Assignment 7
    • Assignment 9
  • Spring 2023
    • EPPS 6323 Knowledge Mining
    • EPPS 6323 Assignment 2
    • EPPS 6323 Assignment 3
    • EPPS 6323 Assignment 4
    • EPPS 6323 Assignment 5
    • EPPS 6323 Assignment 6
    • EPPS 6323 Assignment 7
    • EPPS 6323 Assignment 8
    • EPPS 6354 Information Management
    • Assignments
  • About

On this page

  • Loading and Wrangling Data
  • Plotting Data Frame with TSstudio
  • Converting Data Frame to Zoo Class
  • Plotting Zoo Series with TSstudio and dygraphs

Assignment 9

Loading and Wrangling Data

library(tidyverse)
library(openxlsx)
library(reshape2)

# Loading & wrangling data

hpi <- read.xlsx(xlsxFile = "https://github.com/aldenfelix/aldenfelix.github.io/raw/main/Data/HPI_PO_monthly_hist.xlsx", 
                 startRow = 4, 
                 detectDates = TRUE)

# Select seasonally adjusted variables
# NOTE: TO INCLUDE PARENTHESES IN SEARCH USE \\ AS SEEN BELOW
sa_vars <- hpi %>% 
  select(grep("\\(SA\\)|Month", colnames(hpi)))

# install.packages("reshape2")
library(reshape2)
# Turn data from wide to long format
sa_hpi <- melt(sa_vars, id.vars = "Month")

Plotting Data Frame with TSstudio

class(sa_vars)
[1] "data.frame"
library(TSstudio)
ts_plot(sa_vars,
        title = "Seasonally Adjusted Housing Price Index")

Converting Data Frame to Zoo Class

library(zoo)
ts_data <- read.zoo(sa_hpi, split = "variable", index = "Month")
class(ts_data)
[1] "zoo"
# Can also convert to xts, example:
# data_xts <- xts(data$value, data$date)
# NOTE: problem with data not being recognized as multiple time series

Plotting Zoo Series with TSstudio and dygraphs

library(TSstudio)
ts_plot(ts_data,
        title = "Seasonally Adjusted Housing Price Index")
library(dygraphs)
dygraph(ts_data, main = "Seasonally Adjusted Housing Price Index") %>% 
  dyLegend(show = "always")