我可以滞后/带领data.tables在回归公式中按类别转换吗?

时间:2017-09-14 10:55:06

标签: r data.table shift

我目前在运行回归之前构建滞后和线索。这感觉有点笨拙(甚至比Stata在xtset之后按类别自动发生滞后)并且我想直接滞后于回归公式。但是,我不知道如何将by = data.table部分shift()部分与其lm()函数组合在一个回归命令中,例如library(data.table) set.seed(123) DT <- data.table(id = c(rep("A", 4), rep("B", 3)), y = rnorm(7), dummy = c(0, 1, 0, NA, NA, 1, 0))

示例:

创建一些数据(NA只是确保按类别滞后和滞后不会巧合地产生相同的结果......):

DT[, mylag := shift(dummy, fill=0), by = id]

在运行回归之前创建滞后当然是有效的,但是很繁琐(并且有许多滞后)使数据混乱:

shift()

lm()lm(y ~ mylag, data=DT) lm(y ~ shift(dummy), data=DT) 内部工作,但我不能按类别进行调整,因此结果与之前创建的延迟不同:

shift()

让我回到我的问题:如何在回归中按类别调用class Record[H <: HList](val hs: H) object Record { import shapeless.LabelledGeneric def apply[P <: Product, L <: HList](p: P)(implicit gen: LabelledGeneric.Aux[P, L]) = new Record[L](gen.to(p)) }

0 个答案:

没有答案