2010-12-11 106 views
4

我使用的預測包和提取日期預測包r

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表格,但我需要將日期格式化爲最終用戶會理解他們代表週末(設置爲星期日)的方式。

我轉換使用

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

與「可讀」日期時間序列對象我原來的時間序列在我的時間序列的開始是在2009年4月5日,代表每週數據點。

任何幫助你可以提供將非常感激。不用說我對R來說很新穎。

回答

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()。

+0

好的提示!謝謝 :) – eliasah 2017-01-27 09:51:25