【问题标题】:How do I turn this data into a time series in R?如何将这些数据转换为 R 中的时间序列?
【发布时间】:2017-06-07 01:16:19
【问题描述】:

我在将这些数据作为 holt-winter 模型的时间序列时遇到了一些问题。我不知道下一步该做什么。

library(reshape)
library(tidyr)

tempdata = as.matrix(read.table("https://d37djvu3ytnwxt.cloudfront.net/assets/courseware/v1/592f3be3e90d2bdfe6a69f62374a1250/asset-v1:GTx+ISYE6501x+2T2017+type@asset+block/temps.txt", header = TRUE, row.names = 1))

#melt data for time series

tempdata.ts <- melt(tempdata, id=1:1)

#concatenate Date and Year

tempdata.ts <- tempdata.ts %>% unite(col = "Date", c(X1, X2)) 

【问题讨论】:

    标签: r formatting time-series data-cleaning holtwinters


    【解决方案1】:

    我想你想从stats 匹配HoltWinters。此函数需要ts 对象。

    library(dplyr)
    library(tidyr)
    library(lubridate)
    

    首先,重塑数据:

    file <- "https://d37djvu3ytnwxt.cloudfront.net/assets/courseware/v1/592f3be3e90d2bdfe6a69f62374a1250/asset-v1:GTx+ISYE6501x+2T2017+type@asset+block/temps.txt"
    
    read.table(file, header = TRUE, row.names = 1) %>% 
     as.data.frame() %>%
     mutate(DayMonth = rownames(.)) %>%
     gather(Date, Value, -DayMonth) %>%
     unite("Date", c(DayMonth, Date) ) %>% 
     mutate(Date = dmy(Date) ) -> tempData
    

    创建时间序列对象:

    tsData <- as.ts(
     tempData$Value, start = min(tempData$Date), end = max(tempData$Date),
     frequency = 365)
    

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 1970-01-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 2022-11-01
      相关资源
      最近更新 更多