Ошибка: оператор $ недопустим для атомарных векторов при использовании его внутри цикла для прогнозирования - PullRequest
1 голос
/ 29 марта 2019

Я использую оператор "$", чтобы получить прогнозируемые значения и модель, используемую путем объединения функций stlf и auto.arima. Этот код работает правильно для другого набора данных, но здесь он дает мне эту ошибку.

Я попытался заменить $ на [[ ]], но это также приводит к той же ошибке. Train_df - это временной ряд с 41 строкой и 5 столбцами. Каждый столбец представляет собой разные данные продукта.

Train_df <- ts(Train_df, start=c(2000,1), frequency =12)
fcast <- matrix(NA,nrow=10,ncol=ncol(Train_df))
model <- matrix(NA, nrow = 2, ncol = ncol(Train_df))
colnames(model) <- colnames(Train_df)
acc <- matrix(NA, nrow=ncol(Train_df), ncol=5)
colnames(acc) <- c("ME","RMSE","MAE","MPE","MAPE")

# Combining two models
for(i in 1:ncol(Train_df)){
  fc1 <- forecast(stlf(Train_df[,i],h=10)) #forecast using stlf function
  fc2 <- forecast(auto.arima(Train_df[,i]),h=10) #forecast using auto.arima function
  fcast[,i] <- 0.5*(fc1$mean+fc2$mean) #combining the values from both the forecasts
  model[1,i] <- fc1$method
  model[2,i] <- fc2$method
  acc[i,] <- accuracy(fcast[,i],Test_df[,i]) #Testing for accuracy
} 

Этот код приводит к следующей ошибке. Ошибка: оператор $ недопустим для атомарных векторов.

Может кто-нибудь подсказать, куда я иду не так?

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