【发布时间】:2016-02-03 17:48:33
【问题描述】:
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 次观察。
【问题讨论】:
标签: 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 次观察。
【问题讨论】:
标签: r
我们可以使用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
【讨论】: