对顶级矩阵相关性进行排序并在不应用的情况下删除反向重复项
Sort for top matrix correlations and remove reverse duplicates without apply
我有一个相关矩阵,我需要提取最高值并删除反向重复项(sw6 & sw4 = 0.6 相关意味着与 sw4 & sw6 = 0.6 相同)。
我使用了 here that uses reshape to output the top correlations above 0.5. Now my only problem is that there are reverse duplicates. 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
但是每两行都是一样的
一个选项是将 upper.tri
或 lower.tri
替换为 NA
,然后再替换为 melt
。这具有 pre-processing 的优势,而不必 post-process。对于大型数据集,最好做 pre-processing 而不是转换为长数据集然后删除重复项
library(reshape2)
m1[lower.tri(m1, diag = TRUE)] <- NA
melt(m1, na.rm = TRUE)
注意:此外,除了 OP 已在使用的软件包外,不需要任何其他软件包
我有一个相关矩阵,我需要提取最高值并删除反向重复项(sw6 & sw4 = 0.6 相关意味着与 sw4 & sw6 = 0.6 相同)。
我使用了 here that uses reshape to output the top correlations above 0.5. Now my only problem is that there are reverse duplicates. 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
但是每两行都是一样的
一个选项是将 upper.tri
或 lower.tri
替换为 NA
,然后再替换为 melt
。这具有 pre-processing 的优势,而不必 post-process。对于大型数据集,最好做 pre-processing 而不是转换为长数据集然后删除重复项
library(reshape2)
m1[lower.tri(m1, diag = TRUE)] <- NA
melt(m1, na.rm = TRUE)
注意:此外,除了 OP 已在使用的软件包外,不需要任何其他软件包