R:创建一个表达式数组以传递给函数

时间:2015-03-05 18:41:49

标签: r

我正在使用 glm 函数,它接受一个名为 family 的参数,如下所示:

glm(..., family = gaussian("identity"))

我想为 family 创建一系列可能的选项并循环播放它们。我最初的想法是使用 quote ,就像这样:

fam.array <- c( quote(gaussian("identity")), quote(gaussian("inverse"),
             quote(gaussian("log")))

for(i in 1:3) glm(..., family = fam.array[i])

当我检查 fam.array [1] 时,我会按预期获得高斯(&#34;身份&#34;)。然而, glm 并不喜欢这个表达。有什么正确的方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

改为创建一个列表:

fam.list <- list(gaussian("identity"), gaussian("inverse"), gaussian("log"))

fam.list <- lapply(c("identity", "inverse", "log"), gaussian)

然后:

lapply(fam.list, glm, formula = demand ~ Time, data = BOD)