3
我正在使用ddply,並與輸出的排列方式卡在一起。這是我正在使用的代碼。如您所見,最終輸出(timeseries.out)在一列中具有原始數據和預測數據。使用ddply時分割列
data <- data.frame(Product = c(rep("Shampoo",5),rep("Soap",5)),
TSdata = rnorm(10, 1, 10))
tsfun <-function(y){
arima.out <- arima(y$TSdata)
arima.fc <- predict(arima.out, n.ahead=5)
return (data.frame(c(y$TSdata, arima.fc$pred)))
}
library(plyr)
timeseries.out <- ddply(data, .(Product), tsfun)
我真正想要的是一列中的原始數據,另一列中的預測數據用NAs填充空白點。
data.out <-data.frame(Product = timeseries.out[1:10,1],
Data = c(timeseries.out[1:5,2], rep("NA",5)),
Forecast = c(rep("NA",5),timeseries.out[6:10,2]))
如何更改tsfun的返回值,使其看起來像data.out?我已經嘗試了一些東西,但要麼得到錯誤,要麼得到錯誤的結果。
謝謝!
不要使用'C( )'data.frame()'裏面。 – joran
我曾嘗試過,並得到一個錯誤,沒有意識到錯誤是從arimd.fc $ pred的輸出,而不是缺少的c()。我刪除了c(),並用as.numeric(arima.fc $ pred)代替。謝謝! – obug
請把它寫成答案,以便你可以接受它! – joran