排序以获得最重要的矩阵相关性,并删除不适用的反向重复项

时间:2019-05-17 20:32:53

标签: r matrix reshape

我有一个相关矩阵,我需要提取最高值并删除反向重复项(sw6&sw4 = 0.6相关意味着与sw4&sw6 = 0.6相同)。

我使用了here的答案,该答案使用整形来输出高于0.5的最高相关性。现在我唯一的问题是有反向重复项。 This的问题在这里几乎是我想要的,即删除这些反向重复项,但是仅使用apply,我担心这可能会减慢大集合的代码速度。没有它,有没有办法消除反向骗子?

还是有一种更好的方法来获得矩阵的最高相关性,而只产生唯一的组合?

重塑融化后的输出如下:

X1 X2 value sw6 sw4 0.6299408 sw4 sw6 0.6299408 ss sl 0.5833333 sl ss 0.5833333 id ty 0.5724780 ty id 0.5724780 sl br 0.5333965 br sl 0.5333965

但是每两行相同。

1 个答案:

答案 0 :(得分:1)

一个选择是将upper.trilower.tri替换为NA,然后替换melt。这具有预处理的优势,而不必进行后处理。对于大型数据集,最好进行预处理,而不是转换为长数据集,然后删除重复项

library(reshape2)
m1[lower.tri(m1, diag = TRUE)] <- NA
melt(m1, na.rm = TRUE)

注意:另外,除了OP已经在使用的软件包之外,不需要任何其他软件包