Вызовите переменные для регрессии в функции lmer - PullRequest
0 голосов
/ 22 мая 2018

Я вызываю функцию lmer из пакета lme4.Функция работает, если я жестко закодирую имена столбцов.Если я ссылаюсь на него как на переменную, он выдаёт ошибку.Моя конечная цель - вызвать строку, которая включает «+» между именами столбцов.

Вот пример lmer call:

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 голосов
/ 22 мая 2018

Вы можете сделать

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