将多个结果写入多个列

时间:2013-09-09 10:41:41

标签: r

我正在使用R中的数据集(来自公司的需求数据集),其中包含571个不同的列,这些列具有不同的产品模型及其在48个时期内的需求。目标是预测这些产品模型的需求,我用for-loop做。但是,当我将结果写入我的csv文件时,所有数据都放在一列中。

如何为每个预测的产品型号提供新列。 (所有预测都需要在同一个csv文件中)

我的代码:

for(i in 1:ncol(dataset)) {
  col <- ts(dataset[,i])
  fcast <- forecast(col,h=12)
  write.table(fcast, "results.csv", sep=";", dec=",", append=TRUE, col.names=TRUE) 
}

2 个答案:

答案 0 :(得分:0)

你的fcast对象的长度是否相同?如果是,则应将fcast对象绑定到matrix / data.frame,并在循环结束后将其保存到csv文件中。

fcast <- c() # if size is known you can define the object
for(i in 1:ncol(dataset)) {
  col <- ts(dataset[,i])
  fcast <- cbind(fcast, forecast(col,h=12))
}
names(fcast) <- c(...) # name the columns if needed
write.table(fcast, "results.csv", sep=";", dec=",", append=TRUE, col.names=TRUE) 

答案 1 :(得分:0)

你可以使用这个:

write.table(sapply(seq_len(ncol(dataset)), function(i) forecast(ts(dataset[,i]),h=12)), "results.csv", sep=";", dec=",", col.names=TRUE)