我有一个包含国家数据的 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
我认为
lme4::lmList(formula = var ~ grade | region, data = df)
应该做你想做的事。您遇到的具体问题是,您的某个区域对于所有观测值只有一个
grade
值。有很多方法可以处理这个问题;一种方法是使用 try()
,这样该区域的错误不会完全停止您的代码(但您仍然需要弄清楚要为该区域输入什么值)。