【问题标题】:Extract Date forecast package R提取日期预测包 R
【发布时间】:2010-12-11 01:01:39
【问题描述】:

我正在使用预测包并保存了结果

t <- data.frame(forecast(prod.arima, h=4))

到一个数据框。行名代表我的日期,打印时看起来像

> t
         Point.Forecast    Lo.80    Hi.80    Lo.95     Hi.95
2010.856       812.9849 630.5707 995.3992 534.0064 1091.9634
2010.876       670.3363 485.1885 855.4840 387.1772  953.4953
2010.895       769.4848 584.2552 954.7145 486.2005 1052.7691
2010.914       692.8951 507.6630 878.1272 409.6070  976.1832

我(尚未)完成这项工作,但我希望自动化 LaTex 报告,我将在其中将预测打印到报告页面和预测图。我想我可以将数据框传递给 LaTex 表,但我需要将日期格式化为最终用户能够理解它们代表周末(设置为星期日)的方式。

我使用“可读”日期将原始时间序列转换为时间序列对象

ts(prod, start = 2009 +(31+28+31+5)/365, f=52 )

我的时间序列开始于 2009 年 4 月 5 日,代表每周数据点。

您能提供的任何帮助将不胜感激。不用说我对 R 很陌生。

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    我可以想到两种方法:一种是使用 Epi 包中的 as.Date.cal.yr 函数。另一种方法是将这些日期乘以一年中的秒数,然后将其传递给 as.POSIXct(但我没有测试过那个。)在这两个中,第一个似乎最不痛苦:

    require(Epi)
    as.Date.cal.yr(as.numeric(row.names(t)))
    # [1] "2010-11-10" "2010-11-17" "2010-11-24" "2010-12-01"
    as.POSIXlt(as.Date.cal.yr(as.numeric(row.names(t))))$wday
    #  [1] 3 3 3 3
    paste(weekdays(as.Date.cal.yr(as.numeric(row.names(t)))) , 
             as.Date.cal.yr(as.numeric(row.names(t))), sep=",")
     #   [1] "Wednesday,2010-11-10" "Wednesday,2010-11-17" "Wednesday,2010-11-24"
     #   [4] "Wednesday,2010-12-01"
    

    所以我没有星期天,因为在 POSIXlt 系统中那些将是 wday==0。请参阅 DateTimeClasses 的帮助。

    至于问题的LaTeX部分,安装Hmisc包并使用函数latex()。

    【讨论】:

    • 好提示!谢谢:)
    猜你喜欢
    • 2019-06-21
    • 2016-11-27
    • 2016-07-23
    • 1970-01-01
    • 2021-07-06
    • 2014-11-20
    • 1970-01-01
    • 2013-05-01
    • 2017-11-14
    相关资源
    最近更新 更多