如何在混合模型公式中只包含特定的因子值?

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

我是 Stack Overflow 的新手,提前致歉,因为这很可能是一个非常基本的问题,但是,根据下面的数据,我只想将几个治疗组合并到我的模型公式中。

A brief look at my data:

我的模型公式:

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 生成相同的错误消息。

我真的很感激任何意见! 谢谢!

syntax categorical-data lme4 mixed-models r-model-formula
1个回答
0
投票

要使公式在

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)))

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