Сохранение результатов из функции getOutlier в цикле for
Вернемся к вопросу, который поставил меня в тупик. Это немного похоже на этот пост: Как я могу увидеть выброс нескольких переменных в одном блокпосте, используя R?, но я пытаюсь перебрать больше, чем просто столбец.
Мой, надеюсь, несколько воспроизводимый код:
library(extremevalues)
data(cars)
result<-list()
nFits<-list()
methodz<-c("I","II")
dists<-c("exponential","normal","lognormal","pareto","weibull")
for (i in seq_along(methodz)){
for(j in seq_along(dists)){
for(k in 1:ncol(cars)){
nFits[[i]] <-getOutliers(cars[k],
method=methodz[i],distribution=dists[j])$nFit
result<-nFits
}
}
}
Моя цель - изучить крайние значения каждого из моих постоянных результатов, чтобы определить наиболее подходящий курс действий. Для каждой переменной я хочу запустить функцию getOutliers для обоих типов методов и для всех 5 распределений и сохранить nFit, yMin и yMax во фрейм данных для просмотра. nFits, yMin и yMax выводятся из getOutliers.
Я знаю, что не правильно подписываю каждый из объектов списка, так как получаю неправильное количество подписчиков. Будем благодарны за любые советы, которые вы можете предложить!
1 ответ
Одним из вариантов является создание вложенного list
а затем назначить вывод getOutliers
к этому
methodz <- c("I","II")
dists <- c("exponential","normal","lognormal","pareto","weibull")
nFits <- replicate(length(methodz), vector("list", length(dists)),
simplify = FALSE)
for (i in seq_along(methodz)){
for(j in seq_along(dists)){
for(k in seq_along(cars)){
nFits[[i]][[j]][k] <- getOutliers(cars[[k]],
method=methodz[i],distribution=dists[j])$nFit
}
}
}