私は ddply を使用していますが、出力の配置方法にこだわっています。これは私が使用しているコードです。ご覧のとおり、最終的な出力 (timeseries.out) には、元のデータと予測されたデータが 1 つの列に含まれています。
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)
私が本当に欲しいのは、1 つの列に元のデータがあり、別の列に予測データがあり、空白のスポットが NA で埋められていることです。
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 のように変更するにはどうすればよいですか? 私は多くのことを試しましたが、エラーが発生するか、間違った結果が得られます。
ありがとう!