【发布时间】:2015-03-30 14:01:05
【问题描述】:
我搜索了相关问题以找到答案,但还没有找到解决方案。
这是我的示例矩阵:
input <- structure(c(1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), .Dim = c(3L,
5L), .Dimnames = list(c("X", "Y", "Z"), c("A", "B", "C", "D",
"E")))
我想根据输入矩阵的行将此矩阵转换为方阵。所以我想要的输出应该是这样的:
output <- structure(c(1, 2, 0, 2, 1, 0, 0, 0, 1), .Dim = c(3L, 3L), .Dimnames = list(c("X", "Y", "Z"), c("X", "Y", "Z")))
当然,对角线取值为 1。
最重要的是:输出矩阵中 i,j 的值(如果 i != j)应对应于输入矩阵中相同列中非零值的数量。
因此,X 和 Y 的值应该取值 2,因为 X 和 Y 在同一列 A 和 B 中的值都大于 0。
感谢您的努力。提前致谢!
【问题讨论】: