我试图想出一个不平衡的设计矩阵/虚拟变量矩阵(在模拟项目的上下文中)。目前模拟的不平等观察如下:
set.seed(1)
n_i <- as.matrix(round(runif(3,min=0, max=5)))
n_i
[,1]
[1,] 1
[2,] 2
[3,] 3
我想基于上面的模拟样本大小创建以下形式的矩阵:
des <- cbind(c(1,rep(0,5)),c(0,rep(1,2),rep(0,3)), c(rep(0,3),rep(1,3)))
有没有简单的方法可以做到这一点,而不涉及复杂的for循环?不用说,我的真实数据集会运行1000次观察。 非常感谢任何帮助。
答案 0 :(得分:2)
试试这个
Trt <- factor(x=rep(x=c(1, 2, 3), times=c(1, 2, 3)), labels=c("Trt1", "Trt2", "Trt3"))
model.matrix(~Trt-1, data=Trt)
TrtTrt1 TrtTrt2 TrtTrt3
1 1 0 0
2 0 1 0
3 0 1 0
4 0 0 1
5 0 0 1
6 0 0 1