【发布时间】:2021-09-01 06:57:43
【问题描述】:
我有多个 n*n 矩阵,其中每个单元格包含值 0 或 1。我的目标是删除某个 ID 之后的所有 ID,其中行 和 列在 中只有 0我的数据集的所有矩阵。
这是一些数据:
m1 <- matrix(c(1,0,0,1,0,0,0,0,0,0,0,0), 4, 4)
m2 <- matrix(c(1,0,0,1,0,0,0,0,0,0,0,0), 4, 4)
在这个例子中,如果对应的行和列在两个矩阵中都只显示 0,我想检查 2 之后的每个 ID。在这里,ID 2&3 是这样:然后我想删除所有矩阵中的第 3 行和第 3 列,但保留第 2 行和第 2 列。
如你所想,我的数据集要大得多,这不能手动完成。
我试过了:
m1b <- m1 [which(rowSums(m1[3:4,]) > 0 & colSums(m1[3:4,]) > 0), ]
但这省略了前 2 行,只检查一个矩阵。任何帮助表示赞赏。
【问题讨论】: