Я пытаюсь запустить модель случайных эффектов с 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)