2016-02-03 91 views
2
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個觀測值。

回答

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