我正在制作多维数据的预测模型,该模型使用均值和朴素的方法来预测具有少量观测值的维度。
我将所有结果保存到数据帧中。当我尝试用snaive模型做到这一点时,我收到一个错误:
错误{:任务1失败 - "要替换的项目数不是a 替换长度的倍数"
这是失败的代码部分:
if(length(timeseries) < 54){
fc.resutl <- meanf(timeseries, h = 20, level = c(80, 95))
} else fc.result <- snaive(timeseries, h = 20, level = c(80, 95))
fc.result <- as.data.frame(fc.result)
loop.output <- rbind(loop.output, fc.result)
我尝试打印meanf和snaive函数的结果,两者似乎都是相同的格式:
Point Forecast Lo80 Hi80 Lo95 Hi95
如果我将两者都改为meanf,它可以正常工作,所以只有snaive才会返回错误。知道可能是什么问题吗?
我逐行检查了代码的执行情况,发现错误确实在snaive()中。错误引用是:
9.
.cbind.ts(list(e1, e2), c(deparse(substitute(e1))[1L],
deparse(substitute(e2))[1L]),union = FALSE)
8.
Ops.ts(r, tsLag(r, -lag))
7.
diff.ts(y, lag = lag)
6.
diff(y, lag = lag)
5.
is.data.frame(x)
4.
var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm)
3.
sd(diff(y, lag = lag), na.rm = TRUE)
2.
lagwalk(x, lag = frequency(x), h = h, drift = FALSE, level = level,
fan = fan, lambda = lambda, biasadj = biasadj)
1.
snaive(timeseries, h = 20, level = c(80, 95))
答案 0 :(得分:0)
听起来你想通了,但你的代码第2行也有拼写错误,“fc.resutl”应该是“fc.result”。