首页 > 解决方案 > 将 ARIMA 预测结果导出到 excel 文件中

问题描述

我需要将 arima 预测结果存储到 Excel 文件中,文件应包含第一列作为帐户,该帐户来自不同的变量和该特定帐户号的预测数据框。以下是我的代码:

df <- read.csv("dataset.csv")
library (tseries)
library (forecast)
loopvec <- c(unique(df$account_number))
for (loopitem in loopvec){
    df2 <- subset(df, account_number==loopitem) 
    x = ts(df2$amount, start = c(2015,1), end = c(2020,12), frequency = 
    12)
    arima1 = auto.arima(x)
    forecast1 = forecast(arima1,h = 1)
    write.table(forecast1, file = "Forecast_Results.csv", col.names=NA, 
    append = T)
    write.table(loopitem, file = "accountnumbers.csv", col.names=NA, append = 
    T)
}

我想将这些结果写入一个 excel 文件,如下所示:

`Account#    Month      Point Forecast   Lo.80 Hi.80 Lo.95 Hi.95
A            July 2019  100              80    83    102   114
A            201902     120              95    102   127   138
A            201903     135              110   117   142   158
B            201901     0                0     0     1     4.23
B            201902     0                0     0     1     3.75
B            201903     20               17    18    22    25
C            201901     0                0     0     0.06  2
C            201902     1700             1515  1585  1787  1920
C            201903 1400

目前的csv结果是:

结果.csv:

 "Point.Forecast" "Lo.80" "Hi.80" "Lo.95" "Hi.95"
Jul 2019 -7019257.05555555 -21898155.8001267 7859641.6890156 
-29774569.0172597 15736054.9061486
"Point.Forecast" "Lo.80" "Hi.80" "Lo.95" "Hi.95"
Jul 2019 -188594598.720274 -291947989.598493 -85241207.8420547 
-346659969.827926 -30529227.6126215

帐号.csv

 "x"
 1 A
 "x"
 1 B
 "x"
 1 C

标签: rdataframecsvexportxlsx

解决方案


在这里,当您循环 acc no 时,您每次都将每个预测点存储在 csv 文件中。如果你有很多数据,这将需要很多时间。取而代之的是一个临时数据框并在那里存储没有预测的数据框,并且当您的循环完成时将该数据框存储到 csv 文件中。

完成上述更改后,借助“剪贴板”功能,您可以直接复制您的 R 数据框并粘贴到 Excel 中。

 write.table(RDATAFRAME, "clipboard", sep="\t", row.names=FALSE, col.names=FALSE)

执行上述代码后,转到excel文件并按Ctrl + V(粘贴)它。


推荐阅读