繁体   English   中英

基于值的子集相关矩阵

[英]Subset correlatio matrix based on value

我有这样的相关矩阵

   A    B    C      D    E     F
A  1    0.7  0.9   0.5  0.83   0.88
B  0.7  1    0.8   0.5  0.95   0.96
C  0.9  0.8  1     0.8  0.97   0.9
D  0.5  0.5  0.97   1   0.87   0.91
E 0.83  0.95 0.97  0.87  1     0.81
F 0.88  0.96 0.9   0.91 0.81    1

我想对这个相关矩阵进行子集化,并且只取 ​​>= 0.8 的变量,因为我需要避免对角线的比较(因为所有值都等于 1)

所以结果将是

  C      E      F
C 1      0.97   0.9
E 0.97   1      0.81
F 0.9    0.81    1

谢谢

一个想法可以是创建一个 >= 值大于 0.8 的逻辑矩阵,并在 TRUE 与矩阵维度相同时使用rowSumscolSums并进行过滤

m1[rowSums(m1 >= 0.8) == nrow(m1), colSums(m1 >= 0.8) == nrow(m1)]

     C    E    F
C 1.00 0.97 0.90
E 0.97 1.00 0.81
F 0.90 0.81 1.00

你可以试试这个

> idx <- names(which(rowSums(m >= 0.8) == ncol(m)))

> m[idx, idx]
     C    E    F
C 1.00 0.97 0.90
E 0.97 1.00 0.81
F 0.90 0.81 1.00

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM