用于循环时间序列,以将预测值添加到原始数据框

时间:2018-06-07 13:05:26

标签: r for-loop time-series forecasting forecast

我有一个名为transactions_query的数据集:

 Index   Date                     Number_transactions
 500     2017-05-17               20546

我正在使用ARIMA模型来预测此数据的值,该数据会保存到transactions_query_fit(这是一个预测对象)。这是一个示例行

            Point Forecast    Lo 80     Hi 80    
2018.3217   42769.17          39160.82  46710.00

Lo 95     Hi 95
37375.59  48941.08

我想要做的是将此预测附加到原始数据

我尝试过以下方法:

将预测转换为数据框,然后转换为矩阵:

transaction_query_fit<- as.data.frame(transaction_query_fit)
transaction_query_fit<- as.matrix(transaction_query_fit)

这样做应该允许我将预测rbind到transaction_query数据框吗?

我想到了一个FOR LOOP,它会通过从transaction_query数据框中获取最后一行来生成预测的每日交易日期

latest_transaction <- tail(transactions_query,1)
latest_transaction <- latest_transaction[,1]

row<- 0
for (i in transaction_query_fit[1:nrow(transaction_query_fit),1]) 
{
row[i] <- row[i] + 1
transaction_query_fit$date <- latest_transaction + row[i]
}

但这根本不起作用。我得到错误&#34;长度为0&#34;的参数。似乎循环只能应用

有没有人有任何想法?

由于

--- --- EDIT

我正在使用令人困惑的结果进行测试:

row<- 1
for (i in transaction_query_fit[1:nrow(transaction_query_fit),1]) {
  row[i] <- row[i] + 1
  print(row[i])
}

打印出来&#34; [1] NA&#34;

我不明白为什么

就像索引不可用,好像我在运行循环之前没有转换为矩阵

运行:

 transactions_query_fit[1:nrow(transactions_query_fit),1]

提供外观漂亮且格式良好的输出:

[1] 42769.17 42184.20 41580.65 44223.21 31672.88 24786.25 35532.48 36102.99 

但为什么循环给NA&#39; s?

0 个答案:

没有答案