как применить функцию к списку и вернуть вектор? R - PullRequest
1 голос
/ 20 января 2020

Я пытаюсь создать вектор с суммой созданных прогнозов, но вектор хранит только последнее значение, как создать вектор с каждой суммой?

library(forecast)

setwd("C:\\Users\\Note\\Documents\\Ssl")
n <- dir(pattern = ".csv")
forecastOut <- lapply(n, function(x) {
  dat <- read.csv(x, sep=";", header = TRUE)
  predic <- auto.arima(dat[,1])
  forecast(predic, h = 4)
    }) 

names(forecastOut) <- n

for (i in forecastOut){
  sum<-c(sum(unlist((i[4]))))
 }   
>sum
[1] 2944.32
> class(forecastOut)
[1] "list"

1 Ответ

1 голос
/ 20 января 2020

Мы можем создать sum, инициализированный как vector

Sum <- numeric(length(forecatsOut))
for(i in seq_along(forecastOut)) {
    Sum[i] <- sum(forecastOut[[4]], na.rm = TRUE)
 }

или добавить вывод с помощью c()

Sum <- c()
for(out in forecastOut) {
    Sum <- c(Sum, sum(out[[4]]))
 }

В операциях l oop, sum обновляется в каждой итерации и возвращает последнее sum значение

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