2016-06-27 5 views
0

特定のIDグループの予測値を持つデータフレームがあります。私はpurchaseforecast$lowerpurchaseforecast$upperを使ってそれらを抽出することができますが、私が下で作成した空のデータフレームにそれらを追加することはできません。また、ループのIDを空のデータフレームに追加したいと思います。どんな助けもありがとうございます。R&Dのデータセットへの予測の下限と上限の抽出R

空のデータフレーム:

finaloutput <- data.frame(id =integer, 
       lowerlimit=integer(length = 0L), 
       upperlimit=integer(length = 0L)) 

予測データフレーム:Iが下限値に追加したい

purchaseforecastmn <- forecast.HoltWinters(object = daily_seasonality, level = 95, h =30) 

値はpurchaseforecastmn$lowerであり、上限はからID値に加えpurchaseforecastmn$upperありますループ。

サンプルコード:

dailyseasonality1 <- c(1:365) 

dailyseasonality2 <- HoltWinters(dailyseasonality1, gamma = FALSE,beta = FALSE) 

purchaseforecastmn <- forecast.HoltWinters(object = dailyseasonality2, level = 95, h =30) 
+0

実行する小さなサンプルデータセットとコードを追加することを検討してください。 –

+0

サンプルコードの下にサンプルデータセットを追加しました。私は、purchaseforecastmn $の値をlowerlimitに、purchaseforecastmn $をupperlimitに、そして "1"をidに追加したいと思います。ありがとう – Arun

答えて

0

私は質問を理解していないですが、以下のコードはpurchaseforecastmndata.frame含むすべてプラスid変数を返します。ここでは

# install.packages('forecast') 

library(forecast) 

n.ids <- 30 

id <- 1:n.ids 

dailyseasonality1 <- c(1:365) 
dailyseasonality2 <- HoltWinters(dailyseasonality1, gamma = FALSE,beta = FALSE) 
purchaseforecastmn <- forecast.HoltWinters(object = dailyseasonality2, level = 95, h = n.ids) 
purchaseforecastmn 

my.data <- as.data.frame(purchaseforecastmn) 
my.data <- data.frame(id, my.data) 

が出力されますdata.frame my.data

id Point.Forecast Lo.95 Hi.95 
366 1  364.9999 364.9999 365 
367 2  364.9999 364.9999 365 
368 3  364.9999 364.9999 365 
369 4  364.9999 364.9999 365 
370 5  364.9999 364.9999 365 
371 6  364.9999 364.9999 365 
372 7  364.9999 364.9999 365 
373 8  364.9999 364.9999 365 
374 9  364.9999 364.9999 365 
375 10  364.9999 364.9999 365 
376 11  364.9999 364.9999 365 
377 12  364.9999 364.9999 365 
378 13  364.9999 364.9999 365 
379 14  364.9999 364.9999 365 
380 15  364.9999 364.9999 365 
381 16  364.9999 364.9999 365 
382 17  364.9999 364.9999 365 
383 18  364.9999 364.9999 365 
384 19  364.9999 364.9999 365 
385 20  364.9999 364.9999 365 
386 21  364.9999 364.9999 365 
387 22  364.9999 364.9999 365 
388 23  364.9999 364.9999 365 
389 24  364.9999 364.9999 365 
390 25  364.9999 364.9999 365 
391 26  364.9999 364.9999 365 
392 27  364.9999 364.9999 365 
393 28  364.9999 364.9999 365 
394 29  364.9999 364.9999 365 
395 30  364.9999 364.9999 365 
あなただけ my.dataの最初の行をしたい場合は210

は、あなたがそれを抽出することができます。ループについて

my.output <- my.data[1,] 

、私は私が実行されるコードとの例を参照する必要があるだろうと思います。これは機能するかもしれません。

library(forecast) 

n.iters <- 30 

my.output <- matrix(NA, ncol = 4, nrow = n.iters) 

for(i in 1:n.iters) { 

    dailyseasonality1 <- c(1:365) 
    dailyseasonality2 <- HoltWinters(dailyseasonality1, gamma = FALSE,beta = FALSE) 
    purchaseforecastmn <- forecast.HoltWinters(object = dailyseasonality2, level = 95, h = 30) 
    my.data <- as.matrix(as.data.frame(purchaseforecastmn)) 

    my.output[i,1] <- i 
    my.output[i,2:4] <- my.data[1,1:3] 

} 

colnames(my.output) <- c('id', 'Point.Forecast', 'Lo.95', 'Hi.95') 
my.output