提取具有高相关性的变量对

Extract pairs of variables with high correlation

我有一个输入变量 X,我正在尝试提取 X 中彼此之间具有高相关性 (>0.9) 的变量对。到目前为止,我正在使用 cor 函数来计算变量之间的相关性,但我看不到一种明确的方法来获得具有高相关性的变量对的 list/data 框架彼此之间。

which(..., arr.ind=TRUE)是关键。

补充一些数据:

set.seed(101)
X <- matrix(rnorm(500), nrow=10,
        dimnames=list(NULL, outer(LETTERS,1:2,paste0)[1:50]))
cc <- cor(X)

range(cc[cc<1]) 显示从 -0.82 到 0.87 的值;我将 select 值与 abs(cc)>0.8; row(cc) < col(cc) 将 select 仅来自上三角的值。

w <- which(abs(cc)>0.8 & row(cc)<col(cc), arr.ind=TRUE)
## reconstruct names from positions
high_cor <- matrix(colnames(cc)[w],ncol=2)
high_cor
     [,1] [,2]
[1,] "G1" "H1"
[2,] "F1" "N1"
[3,] "T1" "Z1"
[4,] "U1" "A2"
[5,] "Q1" "C2"
[6,] "M1" "O2"