Вот еще один грубый способ сделать это (без сомнения, есть гораздо более простой способ), но это не слишком сложно, чтобы обернуть это в функцию:
РЕДАКТИРОВАТЬ: Сократил код.
# Simulate correlation matrix (taken from Patrick's answer)
set.seed(1)
n<-100
x<-matrix(runif(n^2),n,n)
cor<-cor(x)
# Set diagonal and one triangle to to 0:
diag(cor) <- 0
cor[upper.tri(cor)] <- 0
# Get sorted values:
sort <- sort(cor)
# Create a dummy matrix and get lowest 5:
min <- matrix(cor %in% sort[1:5] ,n,n)
which(min,arr.ind=T)
# Same for highest 5:
max <- matrix(cor %in% sort[(n^2-5):(n^2)] ,n,n)
which(max,arr.ind=T)
Другой вариант, как сказал Улидтко, - построить график.Вы можете попробовать мой пакет под названием qgraph
, который можно использовать для визуализации корреляционной матрицы в виде сети:
library(qgraph)
qgraph(cor(x),vsize=2,minimum=0.2,filetype="png")