2016-06-27 1 views
0

특정 ID 그룹에 대한 예측 값이있는 데이터 프레임이 있습니다. purchaseforecast$lowerpurchaseforecast$upper을 사용하여 추출 할 수 있지만 아래에서 만든 빈 데이터 프레임에 추가 할 수 없습니다. 루프의 ID를 빈 데이터 프레임에 추가하고 싶습니다. 어떤 도움을 주셔서 감사합니다.예측의 상한 및 하한 경계를 추출하여 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

샘플 코드 Mark에 예제 데이터 집합을 추가했습니다. 나는 purchaseforecastmn $ 값을 lowerlimit, purchaseforecastmn $을 상한선으로, "1"을 이드에 덧붙이고 싶습니다. 감사 – Arun

답변

0

제가 질문을 이해 잘 모르겠지만, 아래 코드는 data.framepurchaseforecastmn의 모든 플러스 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 
관련 문제