将 getOutlier 函数的结果保存在 for 循环中

Saving results from getOutlier function in for loop

带着一个让我难过的问题再次回来。这是 与此 post: 略有相似,但我尝试遍历的不仅仅是一列。

我希望可以重现的代码如下:

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
     }
   }
} 

我的目标是检查我的每个连续结果的极值以确定最合适的行动方案。对于每个变量,我想 运行 两种方法类型和所有 5 个分布的 getOutliers 函数,并将 nFit、yMin 和 yMax 保存到数据框以供查看。 nFits、yMin、yMax都是getOutliers的输出。

我知道我没有正确地为每个列表对象添加下标,因为我不断收到下标数量不正确的错误。如果您能提供任何建议,我们将不胜感激!

一个选项是创建一个嵌套的 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

     }
   }
}