создать формулу в среде data.table в R

Я хотел бы провести регрессию в течениеdata.table,formula должен быть построен динамически. Я попробовал следующий метод:

x = data.table(a=1:20, b=20:1, id=1:5)
> x[,as.list(coef(lm(as.formula("a ~ b")))),by=id]
  Error in eval(expr, envir, enclos) : object 'a' not found

Как определить среду, в которой находится фактическая таблица данных, где происходит оценка?

РЕДАКТИРОВАТЬ: я понимаю, что я могу сделать ЛМ (а ~ б). Мне нужно, чтобы формула была динамичной, так чтоs построен как символьная строка. Под динамически я имею в виду формулу может бытьpaste0(var_1, "~", var_2) гдеvar_1 = a а такжеvar_2 = b

Вот одно решение, которое, я думаю, мы можем сделать лучше:

txt = parse(text="as.list(coef(lm(a ~ b)))")
> x[,eval(txt),by=id]
  id (Intercept)  b
  1:  1          21 -1
  2:  2          21 -1
  3:  3          21 -1
  4:  4          21 -1
  5:  5          21 -1

Ответы на вопрос(1)

Ваш ответ на вопрос