R:如何构造重复单位矩阵
R: How to construct a repeated identity matrix
R 中是否有函数可以轻松构造重复的单位矩阵(不确定这是不是正确的术语)?
这是我目前正在使用的,但有点麻烦且不直观:
Ngroups <- 3
NperGroup <- 2
Z <- diag(Ngroups)[rep(1:Ngroups, each = NperGroup), ]
> Z
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
[3,] 0 1 0
[4,] 0 1 0
[5,] 0 0 1
[6,] 0 0 1
这是一种方法...
diag(3) %x% c(1,1)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
[3,] 0 1 0
[4,] 0 1 0
[5,] 0 0 1
[6,] 0 0 1
在你的情况下 diag(Ngroups) %x% rep(1,NperGroup)
会这样做。有关更多选项,请参阅 ?kronecker
R 中是否有函数可以轻松构造重复的单位矩阵(不确定这是不是正确的术语)?
这是我目前正在使用的,但有点麻烦且不直观:
Ngroups <- 3
NperGroup <- 2
Z <- diag(Ngroups)[rep(1:Ngroups, each = NperGroup), ]
> Z
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
[3,] 0 1 0
[4,] 0 1 0
[5,] 0 0 1
[6,] 0 0 1
这是一种方法...
diag(3) %x% c(1,1)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
[3,] 0 1 0
[4,] 0 1 0
[5,] 0 0 1
[6,] 0 0 1
在你的情况下 diag(Ngroups) %x% rep(1,NperGroup)
会这样做。有关更多选项,请参阅 ?kronecker