Я надеялся получить lm(), чтобы принять строку символов в качестве ввода формулы, но это не совсем работает. Это работает до сих пор:Как сделать lm интерпретировать eval в формуле
Test<-as.data.frame(matrix(sample(1:100, 12), 4, 3))
colnames(Test)<-c("Y", "X1", "X2")
lm(Y~X1, data=Test)
XT1<-"X1"
lm(Y~eval(parse(text=XT1)), data=Test)
Это прекрасно работает и производит правильный выход. Однако, когда у меня есть более одного параметра:
lm(Y~X1+X2, data=Test)
XT2<-"X1+X2"
lm(Y~eval(parse(text=XT2)), data=Test)
Это не дает тот же результат. Интересно, почему так, очевидно, строки символов и правильно интерпретированы:
parse(text=XT1)
parse(text=XT2)
Для фона: В конце концов это должно работать в функции, где подается матрица параметров и строка XT2 должна быть динамически создается из colnames матрицы, поэтому мне понадобится решение, которое работает с XT2 всех возможных длин между 1 и (гипотетически) бесконечностью.