【发布时间】:2020-02-18 19:27:20
【问题描述】:
我正在尝试在 R 中填充一个矩阵,其中最终结果将忽略对角线条目,并且值将填充在对角线周围。我的意思的一个简单示例是,如果我采用如下所示的简单 3x3 矩阵:
ab <- c(1:9)
mat <- matrix(ab,nrow=3,ncol=3)
colnames(mat)<- paste0("x", 1:3)
rownames(mat)<- paste0("y", 1:3)
mat
x1 x2 x3
y1 1 4 7
y2 2 5 8
y3 3 6 9
我想要实现的是用 0 填充对角线并围绕对角线移动所有其他值。因此,例如,如果我只使用 diag(mat)<-0 会导致:
x1 x2 x3
y1 0 4 7
y2 2 0 8
y3 3 6 0
然而,我正在寻找的结果是这样的(值围绕对角线缠绕):
x1 x2 x3
y1 0 3 5
y2 1 0 6
y3 2 4 0
我不担心从矩阵中推出的值(即 7、8、9)。
有什么建议吗?
谢谢
编辑:下面赞成的解决方案似乎已经解决了问题
【问题讨论】: