R 如何在data.table中运行滚动回归并将系数存储在列中?

R 如何在data.table中运行滚动回归并将系数存储在列中?,r,data.table,zoo,R,Data.table,Zoo,计算滚动平均值很容易: library(data.table) library(zoo) DT <- data.table(Y = rnorm(1000), X = rnorm(1000), key.group = rep(c('a', 'b', 'c', 'd'), each = 250)) DT[, Average.Y := rollapply(Y, width = 12, mean)] 可能重复:按组快速线性回归可能重复:按组快速线性回归 DT[, coeffic

计算滚动平均值很容易:

library(data.table)
library(zoo)
DT <- data.table(Y = rnorm(1000), X = rnorm(1000), 
       key.group = rep(c('a', 'b', 'c', 'd'), each = 250))
DT[, Average.Y := rollapply(Y, width = 12, mean)] 

可能重复:按组快速线性回归可能重复:按组快速线性回归
DT[, coefficient := rollapply(.SD, 20, function(x) { 
          the.coefficient <- lm(Y ~ X, data = x)$coefficients[2];
          return(the.coefficient)}), by = key.group]