我使用cor函数在R中创建了一个相关矩阵。
我想从该矩阵中提取10个最大(最接近1)和10个最小(最接近-1)的相应行和列索引。
以下是我如何获得相关矩阵的示例代码:
xs = rnorm(10000)
ys = rnorm(10000)
zs = rnorm(10000)
cor1 <- cor(data.frame(xs,ys,zs))
我获得:
xs ys zs
xs 1.00000000 -0.01077785 -0.01308803
ys -0.01077785 1.00000000 0.01176254
zs -0.01308803 0.01176254 1.00000000
有什么建议吗?
谢谢!
答案 0 :(得分:1)
如果mat
是您的相关矩阵,您可以像这样得到顶部和底部10的位置......
min10 <- which(mat<=sort(mat)[10], arr.ind = TRUE)
max10 <- which(-mat<=sort(-mat)[10], arr.ind = TRUE)
其中每个都是n x 2
矩阵,其中列是符合条件的元素的mat
行和列号。