Объединение двух временных рядов в одной функции - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь объединить два результата функции в один и пытаюсь получить результаты в одном столбце. Мой код

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()). Может кто-нибудь мне помочь, как извлечь как подогнанные, так и прогнозируемые значения в одной и той же функции. Заранее спасибо!

1 Ответ

1 голос
/ 14 октября 2019

Один из способов вернуть более одного объекта - создать список объектов, а затем вернуть его. В вашем случае вы можете использовать это в конце вашей функции:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...