Add(string s) { Add((object)s);}
我想知道如何以不同的方式指定上述公式。作为上下文,我的数据框由1个因变量,20个独立变量和1个用作随机效应的分组变量组成。我做了一些预处理,基本上减少了自变量的数量。但是,我确实知道将提前保留20个变量中的哪一个。那么有没有办法指定上面的内容:
library(lme4)
data("sleepstudy")
sleepstudy$x2 <- runif(length(sleepstudy$Reaction))
sleepstudy$x3 <- runif(length(sleepstudy$Reaction))
mdl <- lmer(Reaction ~ Days + x2 + x3 + (1|Subject), data = sleepstudy)
我唯一知道我的第一列将是我的因变量,我的最后一列将是随机变量,中间的所有列都将是我的预测变量
修改
我做到了:
mdl <- lmer(sleepstudy[,"the first column"] ~ sleepstudy[, "all the other columns in the df"] + (1|"the last column"), data = sleepstudy)
as.formula(paste("y~", paste(pred.names, collapse="+")))
是我想要使用的最终变量列表的名称。我在哪里将随机效应pred.names
变量放在上面的公式中。
答案 0 :(得分:1)
基于描述
sleepstudy <- sleepstudy[c(1:2, 4:5, 3)]
out <- lmer(formula(paste(names(sleepstudy)[1], '~',
paste(names(sleepstudy)[2:(ncol(sleepstudy)-1)], collapse=' + '),
'+ (1|', names(sleepstudy)[ncol(sleepstudy)], ')')), data = sleepstudy)
注意:在这里,我们假设最后一列是&#39;主题&#39;
检查输出
mdl <- lmer(Reaction ~ Days + x2 + x3 + (1|Subject), data = sleepstudy)
all.equal(out, mdl)
#[1] TRUE