虚拟变量增加YEAR

时间:2016-02-03 17:48:34

标签: r

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次观察。

1 个答案:

答案 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