我正在使用预测包并保存了结果
t <- data.frame(forecast(prod.arima, h=4))
Run Code Online (Sandbox Code Playgroud)
到一个数据框。行名代表我的日期,打印时看起来像
> 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
Run Code Online (Sandbox Code Playgroud)
我还没有接近(还)完成这项工作,但我希望自动化 LaTex 报告,在那里我将预测打印到报告页面和预测图。我想我可以将数据帧传递给 LaTex 表,但我需要以最终用户理解它们代表周末(设置为星期日)的方式格式化日期。
我使用“可读”日期将原始时间序列转换为时间序列对象
ts(prod, start = 2009 +(31+28+31+5)/365, f=52 )
Run Code Online (Sandbox Code Playgroud)
我的时间序列的开始时间是 2009 年 4 月 5 日,代表每周数据点。
您可以提供的任何帮助将不胜感激。不用说,我对 R 很陌生。
我可以想到两种方法:一种是使用 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"
Run Code Online (Sandbox Code Playgroud)
所以我没有星期天,因为在 POSIXlt 系统中那些将是 wday==0。请参阅 DateTimeClasses 的帮助。
至于问题的LaTeX部分,安装Hmisc包并使用函数latex()。