【发布时间】:2020-12-13 02:07:54
【问题描述】:
# Example of a panel data
library(data.table)
panel<-data.table(expand.grid(Year=c(2017:2020),Individual=c("A","B","C")))
panel$value<-rnorm(nrow(panel),10) # The value I am interested in
我想用Individual 取前两年value 的方差。
例如,如果我要总结前两年的价值,我会这样做:
panel[,sum_of_past_2_years:=shift(value)+shift(value, 2),Individual]
我认为这会起作用。
panel[,var(c(shift(value),shift(value, 2))),Individual]
# This doesn't work of course
理想的答案应该是这样的
a<-c(NA,NA,var(panel$value[1:2]),var(panel$value[2:3]))
b<-c(NA,NA,var(panel$value[5:6]),var(panel$value[6:7]))
c<-c(NA,NA,var(panel$value[9:10]),var(panel$value[10:11]))
panel[,variance_past_2_years:=c(a,b,c)]
# NAs when there is no value for 2 prior years
【问题讨论】: