R中函数中timeseries对象的调用列表

R中函数中timeseries对象的调用列表,r,time-series,R,Time Series,我正在尝试预测timeseries数据的速率。我在一个列表中有多个timeseries对象,我想在返回预测输出的函数中调用它们中的每一个 当我将各个时间序列传递给函数时,我得到了正确的输出。但当我通过列表时,输出出错 my.meta.function <- function(my.data){ df.name <- my.data length(df.name) train <- head(df.name, 0.77 * length(df.name)) tes

我正在尝试预测timeseries数据的速率。我在一个列表中有多个timeseries对象,我想在返回预测输出的函数中调用它们中的每一个

当我将各个时间序列传递给函数时,我得到了正确的输出。但当我通过列表时,输出出错

my.meta.function <- function(my.data){
  df.name <- my.data
  length(df.name)
  train <- head(df.name, 0.77 * length(df.name))
  test <- tail(df.name, 0.23 * length(df.name))

  fit <- arima(train, c(1, 1, 0),seasonal = list(order = c(1, 1, 0), period = 12), method ="ML")
  fcast <- forecast(fit, h=12)

  plot(fcast, main = 'Forecasts from ARIMA')
  lines(test, col="red")
    legend("topleft",lty=1,bty = "n",col=c("red","blue"),c("testData","Prediction"))
  return(fit)
  }

有几种方法可以将函数应用于R中的列表。只需确保函数接受列表中的单个元素作为输入

底面为拉普拉

lapply(list, my.meta.function)
tidyverse方法使用purrr::map

map(list, ~my.meta.function(.))

它们都将输出一个列表,其中每个元素都是函数的结果。

我知道这是显而易见的,但您是否尝试使用
lappy
loop
对列表中的所有元素进行迭代?我使用了lappy和map,但它为列表中的所有时间序列绘制了相同的输出。
map(list, ~my.meta.function(.))