使用as.POSIXlt/ct进行R预测

3

你好

我在这里的其中一篇帖子上读到,“forecast::plot.forecast函数不适用于axis.Date或axis.POSIXct(它们在包预测中未使用)”。可以在此处查看:custom axis labels plotting a forecast in R

尽管如此,他们仍然成功使用了预测包和一些代码来获得正确的轴标签。但是,这个例子是针对季度数据的。此外,这个例子使用“as.POSIXlt”是针对每周数据的:Forecasting time series data

我尝试过修改代码,但无法使其适用于月度数据。所以我的轴标签仍然是错误的。我被卡住了。请指导如何使用预测包正确反映轴标签。

示例

library(forecast)
headcount<-c(2475,2468,2452,2464,2500,2548,2536,2565,2590,2608,2625,2663)
date<-c("2013/01/31","2013/02/28","2013/03/31","2013/04/30","2013/05/31","2013/06/30",
"2013/07/31","2013/08/31","2013/09/30","2013/10/31","2013/11/30","2013/12/31")

x<-data.frame(headcount,date)
t<-ts(x$headcount,start=c(2013,1),end=c(2013,12),frequency=12)
fit<-forecast(t,h=12)
plot(forecast(fit))

通过这样做,轴标签将显示为2013.0、2013.5、2014.5。

我知道这只是一年的数据。我只是想知道如何修复月度数据的轴标签。

祝好

1个回答

4
以下是使用提供的链接可能的解决方案。
plot(forecast(fit), axes = FALSE)
a <- seq(as.Date(date[1]) + 1, by = "months", length = length(date) + 11)
axis(1, at = as.numeric(a)/365.3 + 1970, labels = format(a, format = "%m/%Y"), cex.axis = 0.9)
axis(2, cex.axis = 0.9)

enter image description here


嗨,大卫,我想为昨天道歉。我当时情绪很差。感谢你的建议和反馈。 - user3497385
NP,请看一下我在a中的编辑,因为之前的代码似乎给出了一些重复的日期。 - David Arenburg
1
感谢您接受我的道歉并提供帮助。非常感激。 - user3497385

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接