我试图将两个函数结果合而为一,并试图在一列中获得结果。我的代码
myfun <-function(x){
fit <-Arima(x, order = c(1,1,1), seasonal = list(order = c(0,1,0), period = 52),include.mean=TRUE,
include.constant = FALSE, method = 'CSS')
fit_a <- forecast(fit$fitted)
fit_a <- data.frame(fit_a$fitted)
colnames(fit_a)[1] <- "load"
fit_a$load <- as.data.frame(fit_a$load)
fit_b <- data.frame(forecast(fit,h=400))
fit_b <- data.frame(fit_b$Point.Forecast)
colnames(fit_b)[1] <- "load"
fit_b$load <- as.data.frame(fit_b$load)
return(rbind(fit_a,fit_b))
}
我分别获得return(fit_a)
和return(fit_b)
之类的值,但是在进行rbind()时,由于各个时间序列数据,我无法获得该值。尝试:c(fit_a,fit_b)
显示两个不同的ts(这确认我们正在输出,并且仅对rbind()
进行故障转移)有人可以帮助我,如何在同一函数中同时提取拟合值和预测值。在此先感谢!
返回多个对象的一种方法是创建对象列表,然后返回该列表。在您的情况下,可以在函数末尾使用它:
fit <- list(fit_a, fit_b)
return(fit)
然后您可以使用fit[[1]]
或fit[[2]]
访问元素。
您还可以命名元素,以便可以使用$
访问它们,如下所示:
fit <- list(fit_a = fit_a, fit_b = fit_b)
return(fit)
然后您可以使用fit$fit_a
和fit$fit_b