在 R 中使用 glm 函数循环
Looping with glm function in R
所以我只是尝试使用 glm
命令做一些非常简单的事情。
我有一个数据框,它有 10 列不同的名称和数据。然后我只需要做这样的事情:
variables <- c("reponse_var", "var1", "var2", "var3", "var4", "var5", "var6", "var7", "var8", "var9")
for (variable in variables) {
reg <- glm(response_var ~ variable, data = df, family = binomial(link = logit))
summary(reg)
所以基本上它应该只对每个变量使用 glm
函数,然后打印输出。但这行不通。输出为:
variable lengths differ (found for 'variable')
我认为既然data = df
它已经知道应该从哪个数据帧中获取数据,通常只需在glm
函数中写入列名就足够了。但是当使用 for 循环执行此操作时,嗯,这就是我得到的。
一个可能的解决方案是将 response_var
和 variable
打包到一个 formula()
对象中,然后将 that 馈入回归。
我认为这里的错误是您将字符串对象输入 glm()
.
所以我只是尝试使用 glm
命令做一些非常简单的事情。
我有一个数据框,它有 10 列不同的名称和数据。然后我只需要做这样的事情:
variables <- c("reponse_var", "var1", "var2", "var3", "var4", "var5", "var6", "var7", "var8", "var9")
for (variable in variables) {
reg <- glm(response_var ~ variable, data = df, family = binomial(link = logit))
summary(reg)
所以基本上它应该只对每个变量使用 glm
函数,然后打印输出。但这行不通。输出为:
variable lengths differ (found for 'variable')
我认为既然data = df
它已经知道应该从哪个数据帧中获取数据,通常只需在glm
函数中写入列名就足够了。但是当使用 for 循环执行此操作时,嗯,这就是我得到的。
一个可能的解决方案是将 response_var
和 variable
打包到一个 formula()
对象中,然后将 that 馈入回归。
我认为这里的错误是您将字符串对象输入 glm()
.