Ошибка LME в model.frame.default ... переменная длина отличается - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь запустить модель случайных эффектов с LME. Это часть более крупной функции, и я хочу, чтобы она была гибкой, чтобы я мог передавать фиксированные (и в идеале случайные) имена переменных эффектов в функцию lme в качестве переменных. get () отлично сработал для этого, когда я начал с lm, но кажется, что он выдает только неоднозначную «Ошибка в model.frame.default (формула = ~ var1 + var2 + ID, data = list (: переменные длины различаются (найдено для 'ID'). "Я в замешательстве, данные имеют одинаковую длину, в этих или реальных данных нет NA, ...

set.seed(12345) #because I got scolded for not doing this previously
var1="x"
var2="y"
exdat<-data.frame(ID=c(rep("a",10),rep("b",10),rep("c",10)),
           x = rnorm(30,100,1),
           y = rnorm(30,100,2))
#exdat<-as.data.table(exdat) #because the data are actually in a dt, but that doesn't seem to be the issue

Прекрасно работает

lm(log(get(var1))~log(get(var2)),data=exdat)
lme(log(y)~log(x),random=(~1|ID), data=exdat)

Не работает

 lme(log(get(var1,pos=exdat))~log(get(var2)),random=(~1|ID), data=exdat)

Не работает, но выдает новый код ошибки: «Ошибка в model.frame.default (формула = ~ var1 + var2 + rfac + exdat, data = list (: неверный тип (список) для переменной 'exdat'"

rfac="ID"
lme(log(get(var1))~log(get(var2)),random=~1|get(rfac,pos=exdat), data=exdat)
...