[英]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 与矩阵维度相同时使用rowSums
和colSums
并进行过滤
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.