我正在使用预测包并保存了
的结果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很新。
答案 0 :(得分:4)
我可以想到两种方法:一种方法是使用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()。