我是 Stack Overflow 的新手,提前致歉,因为这很可能是一个非常基本的问题,但是,根据下面的数据,我只想将几个治疗组合并到我的模型公式中。
我的模型公式:
fit <-glmer(Proportion_S~TREATMENT + (1|HOUR), control=glmerControl(optimizer="bobyqa"), data = MotherPExp, family = poisson)
“治疗”一共有8个等级。它们是:CCC、CCP、CPC、CPP、PCC、PCP、PPC、PPP。 我只想包括特定的治疗组(例如:仅:CCC、CPC 或 PPC 等)作为独立变量,而不是整个“治疗”列。 我尝试指定不同的级别如下:
data.frame(x1 = c("PCP"), x2 = c("PPP*PCP"), x3 = c("CCP"), x4=("CPP"))
虽然这有效,但我仍然无法将其纳入公式:
fit <-glmer(Proportion_S~ x1*x2 + x3 + (1|HOUR) + control=glmerControl(optimizer="bobyqa"), data = MotherPExp, family = poisson)
我收到以下错误消息:
Error in data.frame(x1*x2 + x3) : object 'x1' not found
即使我减少独立变量,也会为 x1:x4 生成相同的错误消息。
我真的很感激任何意见! 谢谢!
要使公式在
library(lme4)
中使用变量(而不是在您的 data =
中)工作,您需要使用 as.formula()
和 paste()
将公式“文本”转换为它可以读取的内容。在 paste
内,在您的 data=
之外定义的任何内容都应该在引号之外。使用您提供的内容(尽管如果没有提供一组适当的数据很难测试),我会尝试这样的事情:
fit <-glmer(as.formula(paste("Proportion_S~", x1, "*", x2, "+", x3, "+ (1|HOUR)", control=glmer(Controloptimizer="bobyqa"), data = MotherPExp, family = poisson)))