0

我正在使用 R 中的数据集(来自公司的需求数据集),其中包含 571 个不同的列,具有不同的产品模型及其在 48 个时期内的需求。目标是预测对这些产品模型的需求,我使用 for 循环进行。但是,当我将结果写入 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) 
}
4

2 回答 2

0

你可以简单地使用这个:

write.table(sapply(seq_len(ncol(dataset)), function(i) forecast(ts(dataset[,i]),h=12)), "results.csv", sep=";", dec=",", col.names=TRUE)
于 2013-09-09T17:26:18.540 回答
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) 
于 2013-09-09T12:00:35.720 回答