无法将预测结果附加到向量或数据框中
Unable to append forecast results into a vector or dataframe
我有一个数据框,每一列代表一年的数据(从 2000 年到 2018 年)。我正在使用简单的 forecast()
函数来预测 2019 年的结果。
问题是在使用 for 循环为 4000 多行生成预测时,我无法为每一行生成包含预测的矢量或数据框。
这是我使用的代码:
Data = data.frame(2000 = c(...),2001 = c(...),...,2018 = c(...))
dfe = c()
for (i in 1:nrow(Data)) {
tseries = ts(unlist(Data[i,6:24], start = 2000, end = 2018, frequency = 1)
fo = forecast(tseries, h = 1)
valfo = append(dfe, as.vector(fo$mean))
}
我期待一个向量,其中包含所有 4000 多行数据的 2019 年预测。但是当我 运行 这段代码时,R 抛出一个值。
这似乎只是您如何分配结果的问题。您当前的代码正在覆盖每个循环结束时的结果。
试试这个:
Data = data.frame("2017" = c(20,30,45,66,12), "2018" = c(11,54,65,22,78), "2019" = c(9,76,33,53,77))
dfe = c()
for (i in 1:nrow(Data)) {
tseries = ts(unlist(Data[i,1:3]), start = 2017, end = 2019, frequency = 1)
fo = forecast(tseries, h = 1)
dfe[[i]] <- as.vector(fo$mean)
valfo <- unlist(dfe)
}
这应该会为您提供预测向量 valfo
。
我有一个数据框,每一列代表一年的数据(从 2000 年到 2018 年)。我正在使用简单的 forecast()
函数来预测 2019 年的结果。
问题是在使用 for 循环为 4000 多行生成预测时,我无法为每一行生成包含预测的矢量或数据框。
这是我使用的代码:
Data = data.frame(2000 = c(...),2001 = c(...),...,2018 = c(...))
dfe = c()
for (i in 1:nrow(Data)) {
tseries = ts(unlist(Data[i,6:24], start = 2000, end = 2018, frequency = 1)
fo = forecast(tseries, h = 1)
valfo = append(dfe, as.vector(fo$mean))
}
我期待一个向量,其中包含所有 4000 多行数据的 2019 年预测。但是当我 运行 这段代码时,R 抛出一个值。
这似乎只是您如何分配结果的问题。您当前的代码正在覆盖每个循环结束时的结果。
试试这个:
Data = data.frame("2017" = c(20,30,45,66,12), "2018" = c(11,54,65,22,78), "2019" = c(9,76,33,53,77))
dfe = c()
for (i in 1:nrow(Data)) {
tseries = ts(unlist(Data[i,1:3]), start = 2017, end = 2019, frequency = 1)
fo = forecast(tseries, h = 1)
dfe[[i]] <- as.vector(fo$mean)
valfo <- unlist(dfe)
}
这应该会为您提供预测向量 valfo
。