【发布时间】:2015-11-01 19:57:36
【问题描述】:
我能够执行以下操作:
foo=data.frame(y=rnorm(100),x1=rnorm(100),x2=rnorm(100),x3=rnorm(100))
full=lm(foo$y ~ foo$x1 + foo$x2 + foo$x3)
nil=lm(foo$y ~ 1)
fwd=step(nil,scope=list(lower=formula(nil),upper=formula(full)),direction='forward')
但我正在像这样使用 data.table:
library(data.table)
foo=data.table(y=rnorm(100),x1=rnorm(100),x2=rnorm(100),x3=rnorm(100))
full=foo[,lm(y ~ x1 + x2 + x3)]
nil=foo[,lm(y ~ 1)]
fwd=foo[,step(nil,scope=list(lower=formula(nil),upper=formula(full)),direction='forward')]
我得到了错误:
Error in eval(expr, envir, enclos) : object 'x1' not found
但是x1 是在上面的 J 表达式中为 data.table 定义的 - 有没有办法解决这个问题而不必将我的表转换为 data.frame?
【问题讨论】:
标签: r data.table lm