如何在R中创建线性模型列表?

时间:2017-02-02 09:20:59

标签: r list lm

我需要在R。

中创建一个命名的线性模型列表
models=list()
for (tag in tagnames){
   expr=paste0(tag," ~ .")
   f=formula(expr)
   models[tag]=lm(f,df)
 }

这是我写的代码;它实际上创建了列表,但显然它是一个不是可调用对象的列表列表(即,方法预测不会对列表的元素起作用)。

如何使列表元素可用作实际的lm对象?

2 个答案:

答案 0 :(得分:2)

您可以使用lapply创建模型列表:

models <- lapply(tagnames, function(x) lm(formula(paste0(x, " ~ .")), df))

并使用

指定名称
names(models) <- tagnames

然后在列表元素上调用predict

predict(models[["name"]])

答案 1 :(得分:0)

你可以这样:

models[[tag]]=lm(f,df)


models=list()
tagnames <- names(cars)
for (tag in tagnames){
  expr=paste0(tag," ~ .")
  f=formula(expr)
  fit <- lm( f, data = cars)
  models[[tag]]=fit
}