例如,如果我有lm
个对象的列表,我该如何将其传递给函数anova
?
我尝试在R中搜索对可变参数函数的任何引用,或者对LISP的apply
执行任何类似的函数,但没有成功。
编辑:我明白了,根据this answer.
,这可以通过do.call来完成答案 0 :(得分:1)
lapply
功能是你的朋友。这是一个完整但荒谬的例子:
R> set.seed(42) # be reproducible
R> X <- matrix(rnorm(100), ncol=2)
R> y <- vector(mode="list", length=3)
R> y[[1]] <- runif(50); y[[2]] <- rt(50, 3); y[[3]] <- rbinom(50, 5, 0.5)
此时,我们列出了候选因变量和一组共同的回归量。因此,让我们使用lapply()
一次运行多个回归,然后再次运行
比如说,提取系数。
R> fits <- lapply(y, FUN=function(z) { lm(z ~ X) })
R> coefs <- lapply(fits, coef)
R> coefs
[[1]]
(Intercept) X1 X2
0.4543939 0.0503187 0.0442636
[[2]]
(Intercept) X1 X2
0.1115462 -0.0720639 0.1398801
[[3]]
(Intercept) X1 X2
2.3338105 0.0991485 0.0965852
R>