如何循环多个模型以放入R中的列表

如何循环多个模型以放入R中的列表,r,list,loops,model-comparison,R,List,Loops,Model Comparison,我有117个型号,分别是m1,m2,m3,…,m117。我需要使用MuMIn包中的model.sel比较它们的AIC。模型比较的语法是model.sel(object,…),其中object是模型列表。因此,我尝试创建一个循环,将所有117个模型读入一个列表: list<-list() for (i in 1:117) { list[[i]]<- cat(paste("f",i)) } 我认为在我的代码中,R只读取列表中的字符,而不是我拥有的对象(模型)。感谢您的帮

我有117个型号,分别是m1,m2,m3,…,m117。我需要使用MuMIn包中的model.sel比较它们的AIC。模型比较的语法是model.sel(object,…),其中object是模型列表。因此,我尝试创建一个循环,将所有117个模型读入一个列表:

list<-list()

for (i in 1:117)

  {
  list[[i]]<- cat(paste("f",i))
  }

我认为在我的代码中,R只读取列表中的字符,而不是我拥有的对象(模型)。感谢您的帮助。我甚至不知道我是否应该首先使用循环。

这里有一个解决方案,使用虹膜数据的2线性回归

模型:

 m1<-lm(Petal.Length ~ 1, data=iris)
 m2 <- lm(Petal.Length ~ Sepal.Length, data=iris)
 models <- paste0("m", 1:2)
要创建线性回归模型列表,请执行以下操作:

lapply(models, function(x)get(x))

[[1]]

Call:
lm(formula = Petal.Length ~ 1, data = iris)

Coefficients:
(Intercept)  
      3.758  


[[2]]

Call:
lm(formula = Petal.Length ~ Sepal.Length, data = iris)

Coefficients:
 (Intercept)  Sepal.Length  
      -7.101         1.858  

你是如何得到所有这些不同的模型对象的?如果你首先把它们都列在一个列表中,那就容易多了。您没有使用
assign()
是吗?通常应该避免使用该函数。
list[i]谢谢,get(paste())的功能确实有效!
 sapply(models, function(x)AIC(get(x)))

      m1       m2 
599.1741 387.1350 
lapply(models, function(x)get(x))

[[1]]

Call:
lm(formula = Petal.Length ~ 1, data = iris)

Coefficients:
(Intercept)  
      3.758  


[[2]]

Call:
lm(formula = Petal.Length ~ Sepal.Length, data = iris)

Coefficients:
 (Intercept)  Sepal.Length  
      -7.101         1.858