我需要在R。
中创建一个命名的线性模型列表models=list()
for (tag in tagnames){
expr=paste0(tag," ~ .")
f=formula(expr)
models[tag]=lm(f,df)
}
这是我写的代码;它实际上创建了列表,但显然它是一个不是可调用对象的列表列表(即,方法预测不会对列表的元素起作用)。
如何使列表元素可用作实际的lm对象?
答案 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
}