dt<- data.frame(year=factor(2000:2004))
我需要一个虚拟变量集,如下dt.dummy
,
dt.dummy <-matrix(c(0,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,0,1), nrow=5)
也就是说,去年没有假人,2004年假人是由增加的一年创造的。
我将使用季度数据,因此至少有120次观察。
答案 0 :(得分:3)
我们可以使用model.matrix
获取虚拟编码,然后获取每列的cumsum
。
apply(model.matrix(~year-1, dt)[,-1], 2, cumsum)
另一个选项是mtabulate
library(qdapTools)
d1 <- mtabulate(dt$year)[-1]
#based on the example, we can also change the lower triangle as 1
d1[lower.tri(d1)] <- 1