调用lmer函数中的回归变量

时间:2018-05-22 17:21:34

标签: r string lme4

我正在调用lmer包中的lme4函数。如果我对列名进行硬编码,则该函数有效。但是,如果我将其称为变量,则会引发错误。我的最终目标是拨打包含' +'每个列名称之间。

以下是lmer调用示例:

colnames(df)
COL_A, COL_B, COL_D

这有效:

output <- lmer(COL_A ~ 1 + COL_B + 1|COL_D, df, REML = FALSE, verbose = TRUE)

这不是:

var_a <- COL_A
var_b <- COL_B
var_c <- COL_D

output <- lmer(var_a ~ 1 + var_b + 1|var_c, df, REML = FALSE, verbose = TRUE)

出现错误:

Error in model.frame.default(data = df, drop.unused.levels = TRUE,  : 
  variable lengths differ (found for 'var_b')

如果能够弄清楚它会很棒。

我的最终目标是将函数称为字符串,如下所示:

form_lmer<-"COL_A ~ 1 + COL_B + 1|COL_D"

output <- lmer(form_lmer, df, REML = FALSE, verbose = TRUE)

以前有人遇到过这种事吗?

1 个答案:

答案 0 :(得分:0)

你可以做到

output<-lmer(paste0(var_a, "~ 1 + ",var_b," + 1|",var_c), df, REML = FALSE, verbose = TRUE)