我有一个现有的协方差矩阵,我想根据各个列所属的组(例如,前2行/列是组1,下一个是组2等)将其转换为块对角线.有什么简单的方法可以做到这一点:
下面是我所拥有的一个例子:
m1 <- matrix(1:16, ncol=4, byrow=TRUE)
rownames(m1) <- colnames(m1 ) <- c('a', 'b', 'c', 'd')
a b c d
a 1 2 3 4
b 5 6 7 8
c 9 10 11 12
d 13 14 15 16
我有两个组:
第一组:‘a’、‘b’
第二组:‘C’,‘d’
我想要的是:
a b c d
a 1 2 0 0
b 5 6 0 0
c 0 0 11 12
d 0 0 15 16