【发布时间】:2016-05-23 11:36:24
【问题描述】:
我有一个 60*60 的矩阵,有点难以导航,我只想专注于矩阵中的某些值。所以我的想法是如果它们的值低于/高于某个阈值,则删除所有单元格,如果某个行/列中的所有值低于阈值,它们也会被删除。
假设我想删除值低于 0.5 的所有内容
示例输入:
abcd abcde ab
abcd 0.000000000 0.44757748 0.61945319
abcde 0.447577477 0.00000000 0.33773497
ab 0.619453192 0.33773497 0.00000000
示例输出:
abcd ab
abcd 0.61945319
ab 0.619453192
所以在这种情况下,abcde 列的值没有超过 0.5 并且被完全删除(因为它是对称的,所以该行也被删除了)。此外,曾经持有数字的所有其他值现在都是空的。我已经简化了矩阵,可以很容易地看到我想要的单元格。现在,这是一个 3*3 矩阵,所以它不是很有用,但它可能对具有大量值的矩阵有用。
有没有办法做到这一点?
【问题讨论】:
-
您可以在illustrated here 的条件下使用
rowSums或colSums来实现。例如:mat[rowSums(mat > 0.5) >= 1, ]