【问题标题】:sorting correlation matrix R排序相关矩阵R
【发布时间】:2018-03-15 02:08:30
【问题描述】:

我使用 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

有什么建议吗?

谢谢!

【问题讨论】:

    标签: r


    【解决方案1】:

    如果mat是你的相关矩阵,你可以像这样得到前10和后10的位置...

    min10 <- which(mat<=sort(mat)[10], arr.ind = TRUE)
    max10 <- which(-mat<=sort(-mat)[10], arr.ind = TRUE)
    

    其中每一个都是一个n x 2 矩阵,其中列是mat 的行号和列号,用于满足条件的元素。

    【讨论】:

    • 嗨。谢谢,这很有帮助。你能解释一下负号获得max10的动机吗?
    • sort按升序排序,所以负号是降序排序的一种方式
    猜你喜欢
    • 2022-08-17
    • 2019-04-15
    • 2019-12-07
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2018-12-05
    相关资源
    最近更新 更多