在R中的data.table环境中创建一个公式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (17)

我想在一个内部运行一个回归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

如何将环境指定为发生评估的实际data.table的环境?

提问于
用户回答回答于

lm可以接受一个字符串作为公式,.SD就像这样结合起来:

> x[, as.list(coef(lm("a ~ b", .SD))), 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

扫码关注云+社区