在同一函数中加入两个时间序列
Joining two time-series in same function
我正在尝试将两个函数结果合并为一个,并尝试在一列中获得结果。
我的代码
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()
)。
有人可以帮助我,如何在同一个函数中提取拟合值和预测值。
提前致谢!
return 多个对象的一种方法是创建一个对象列表,然后 return 那个。在您的情况下,您可以在函数末尾使用它:
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
我正在尝试将两个函数结果合并为一个,并尝试在一列中获得结果。
我的代码
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()
)。
有人可以帮助我,如何在同一个函数中提取拟合值和预测值。
提前致谢!
return 多个对象的一种方法是创建一个对象列表,然后 return 那个。在您的情况下,您可以在函数末尾使用它:
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