在数据框架中的一个响应变量和几个exlanatory变量之间应用模型后,我想按AIC分数对每个模型进行排名。 我遇到了一个非常类似的问题,它完全符合我的要求。 Using lapply on a list of models,但它似乎对我不起作用,我不知道为什么。以下是使用mtcars数据集的示例:
lm_multiple <- lapply(mtcars[,-1], function(x) summary(lm(mtcars$mpg ~ x)))
上述链接的批准答案建议:
sapply(X = lm_multiple, FUN = AIC)
但这对我不起作用,我收到此警告信息。
UseMethod(“logLik”)中的错误:
没有适用于“logLik”的方法应用于“summary.lm”类的对象
以下是原始问题的答案......
x <- seq(1:10)
y <- sin(x)^2
model.list <- list(model1 = lm(y ~ x),
model2 = lm(y ~ x + I(x^2) + I(x^3)))
sapply(X = model.list, FUN = AIC)
答案 0 :(得分:1)
你应该删除summary
这样的
lm_multiple <- lapply(mtcars[,-1], function(x) lm(mtcars$mpg ~ x))
sapply(X = lm_multiple, FUN = AIC)