如何快速针对数据中的不同类别运行多个 glm?

问题描述 投票:0回答:1

我有一个包含国家数据的 df,想看看变量之间的关系在较小的地理区域(地区、州)是否不同。 我尝试过使用 glm 的子集参数,但这会非常重复,因为我有许多区域和许多因变量。

前)

glm(formula = var ~ grade, data = df, subset = region == "north")

但是假设我有 10 个区域和 10 个变量,并且我希望能够获得全部的 glm 结果,但按区域的子集,或者一个区域接一个区域,而不是必须单独运行每个 glm 组合。这可能吗?

var 的值为 1 - 100 之间的数字,grade 的值为“A”、“B”、“c”和“D”

如果这不太有意义,我很抱歉。

我一般尝试使用子集,

glm(formula = var ~ grade, data = df, subset = region)

但这导致了对比度错误

Error in 'contrasts<-'('*tmp*', value = contr.funs[1 + isOF[nn]]) :  contrasts can be applied only to factors with 2 or more levels

r glm
1个回答
0
投票

我认为

lme4::lmList(formula = var ~ grade | region, data = df)

应该做你想做的事。您遇到的具体问题是,您的某个区域对于所有观测值只有一个

grade
值。有很多方法可以处理这个问题;一种方法是使用
try()
,这样该区域的错误不会完全停止您的代码(但您仍然需要弄清楚要为该区域输入什么值)。

© www.soinside.com 2019 - 2024. All rights reserved.