我正在调用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)
以前有人遇到过这种事吗?
答案 0 :(得分:0)
你可以做到
output<-lmer(paste0(var_a, "~ 1 + ",var_b," + 1|",var_c), df, REML = FALSE, verbose = TRUE)