在R中使用For循环提取变量值

时间:2019-05-24 01:56:46

标签: r

我在R中有102个不同的模型,分别被编码为列表,分别名为“ model1”,“ model2”,“ model3” ...“ model102”。它们每个都具有完全相同的结构,第9个元素检索AIC值。我希望使用一种for循环(或实际上是任何方法),可以为我的每个模型提取AIC值,将AIC值从最低到最高排序,然后将有序值放入新的数据框中。

我有使用Python的经验,因此我最初的想法是使用Regex在for循环中顺序连接字符串和数字。不幸的是,我几乎没有R的经验,并且不确定如何从每个变量中提取AIC值。

有什么想法吗?谢谢!

number <- seq(1,6,1)
modelList <- paste(name,number,sep = "")

for (i in 1:length(number)) {
  print (modelList[i]$AIC)
}

1 个答案:

答案 0 :(得分:0)

base R选项将获取对象的值到列表中(假设模型标识符名为“ model1”,“ model2”,...,“ model102”),循环遍历listsapply,提取“ AIC”值,sort并创建一个带有一列的“ data.frame”

lst1 <- mget(paste0("model", 1:102))
aicV <- sapply(lst1, function(x) x$AIC)
d1 <- data.frame(aic = sort(aicV))