【问题标题】:Converting Time Series Values Back into Dates R将时间序列值转换回日期 R
【发布时间】:2017-09-21 09:14:51
【问题描述】:

您好,我正在创建一个 R 时间序列,但是在建模之后,我需要将该列转换回我可以实际解释的日期 (yyyy-mm-dd)。

bus_date <- as.Date(c('2017-04-01', '2017-04-08', '2017-04-15', '2017-04-22', '2017-04-29'))
sales <- c(100, 110, 110, 130, 120)

sales_data <- data.frame(bus_date, sales)

sales_data.ts <- ts(sales_data$sales, 
                       start = min(sales_data$bus_date),
                       freq = (365.25/7))
sales_data.ts

我曾尝试使用 lubridate 中的一些功能(当我有 2015.123、2015.456 等日常数据时,此功能有效)但无法正常工作......我在这里错过了什么?我怎样才能找回日期?

setDT(data_ARIMA, keep.rownames = TRUE)[]
data_ARIMA$dates_intermediate <- date_decimal(as.numeric(data_ARIMA$rn))
data_ARIMA$dates <- as.Date(date_decimal(as.numeric(data_ARIMA$rn)))
data_ARIMA

【问题讨论】:

    标签: r date time-series


    【解决方案1】:

    您使用的频率可能不适合您的数据。试试这个

    sales_data.ts <- ts(sales_data$sales, 
                        start = min(sales_data$bus_date),
                        frequency = 1/7) #OR deltat = 7
    sales_data.ts
    #Time Series:
    #Start = 17257 
    #End = 17285 
    #Frequency = 0.142857142857143 
    #[1] 100 110 110 130 120
    
    as.Date(as.numeric(time(sales_data.ts)))
    #[1] "2017-04-01" "2017-04-08" "2017-04-15" "2017-04-22" "2017-04-29"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 2020-09-20
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      相关资源
      最近更新 更多