R语言 将列名向量插入到glm中

ctehm74n  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(107)

我想用一个有大量系数的数据框来构造一个glm,不需要手动输入每个列名,是否可以把列名的向量放进去?
假设我的dataframe包含字母表中每个字母的一列,我想这样做:

alphabet <- c("A", "B", "C", ... , "Z")
model <- glm(y ~ alphabet, data= dataframe)

而不是去做:

model <- glm(y ~ A + B + C + ... + Z, data = dataframe)

当我试图用一个向量来构建这个线性模型时,我得到了这个错误,这是有道理的,因为字母表向量只是列的长度
变量长度不同(在“alphabet”中找到)

1wnzp6jl

1wnzp6jl1#

我们可以使用reformulate来创建公式

model <- glm(reformulate(alphabet, response = "y"), data = dataframe)
  • 测试
> alphabet <- LETTERS
> reformulate(alphabet, response = "y")
y ~ A + B + C + D + E + F + G + H + I + J + K + L + M + N + O + 
    P + Q + R + S + T + U + V + W + X + Y + Z

就像y ~ alphabet的公式一样

> y ~ alphabet
y ~ alphabet

而不是评估对象中的内容
或者可能需要paste/sprintf

paste("y~ ", paste(alphabet, collapse = "+"))
[1] "y~  A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z"

相关问题