2017-08-09 9 views
0

私は、観測数の少ない次元を予測するための平均的で簡単な方法を使用する多次元データの予測モデルを作成しています。R snaive() - 置き換えるアイテムの数が置換の長さの倍数ではありません

私はすべての結果をデータフレームに保存しています。私はmeanfとsnaive機能との結果を印刷しようとした

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) 

:これは失敗しているコードの一部である

Error in { : task 1 failed - "number of items to replace is not a multiple of replacement length"

:私はsnaiveモデルとそれをしようとすると、私はエラーを取得します両方が同じ形式であるように見える:

Point Forecast Lo80 Hi80 Lo95 Hi95

私はmeanfの両方を変更すると、それはこれだけsnaiveがエラーを返して、正常に動作します。どのようなアイデアが問題になるのでしょうか?

コードの実行を1行ずつチェックして、エラーが実際にsnaive()であることを確認しました。エラートラックバックは次のとおりです。あなたはそれを考え出したが、あなたはまた、2行目のコードでスペルエラーを持っているよう

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

心配しないで、snaiveはint頻度のtimeseriesを受け入れますが、私の鉱山は毎週の予測のために365,25/7に設定されていました。 –

答えて

0

は、「fc.resutlは」「fc.result」でなければなりませんね。

関連する問題