2014-02-27 24 views
0

如何使用model.matrix生成一个看起来像这样的矩阵?如何以特定方式制作model.matrix?

 [,1] [,2] [,3] [,4] [,5] [,6] 
[1,] 1 1 0 0 0 0 
[2,] 1 2 0 0 0 0 
[3,] 1 3 0 0 0 0 
[4,] 0 0 1 1 0 0 
[5,] 0 0 1 2 0 0 
[6,] 0 0 1 3 0 0 
[7,] 0 0 0 0 1 1 
[8,] 0 0 0 0 1 2 
[9,] 0 0 0 0 1 3 

我通过

fit = lmer(Temp ~ 1 + (1 + Time|Id), data = Data) 
getME(fit, name = c("Z")) 

Time = rep(1:3, 3) 

和ID

Id = c(0L, cumsum(diff(Time) < 0)) 

这是接近我能得到生产的第一矩阵。

id = rep(c("a","b","c"),each = 3) 
Z = model.matrix(~0+id) 

    [,1] [,2] [,3] 
1 1 0 0 
2 1 0 0 
3 1 0 0 
4 0 1 0 
5 0 1 0 
6 0 1 0 
7 0 0 1 
8 0 0 1 
9 0 0 1 
+0

你能解释第一个矩阵的元素吗?我的意思是,让你看起来像第一个矩阵的矩阵是微不足道的,但我怀疑它会是你想要的...... –

回答

2

我不知道我让你尝试做,但做这项工作吗?

val = rep(1:3,3) 
z = model.matrix(~0+id+id:val)