【问题标题】:Applying threshold on correlation matrix in R在R中的相关矩阵上应用阈值
【发布时间】:2014-10-21 13:00:18
【问题描述】:

我目前正在使用 R 处理数据集。我已经为我的变量创建了一个相关矩阵(Pearson)。但是现在我想为矩阵中显示的值设置一个阈值。 我正在尝试以下代码:

cor_relation = cor(mydata_frame, use="all.obs", method="pearson")

我得到以下输出:

             200605_s_at      202592_at      202958_at
200605_s_at  1.000000000     0.295065389     0.169772244
202592_at    0.695065389     1.000000000     -0.534394180
202958_at    0.869772244     -0.534394180    1.000000000

我想找到以下输出(当我把阈值设置为 0.6 时):

             200605_s_at      202592_at      202958_at
200605_s_at  1.000000000        NA              NA
202592_at    0.695065389     1.000000000        NA
202958_at    0.869772244        NA           1.000000000

提前感谢您的帮助!

【问题讨论】:

    标签: r


    【解决方案1】:

    备用:

    cor_relation[abs(cor_relation) < 0.6] <- NA
    

    【讨论】:

    • 谢谢,它工作得很好。但我必须删除“abs”,否则它也会显示负值,而我只需要正值。
    【解决方案2】:
    is.na(cor_relation) <- abs(cor_relation) < 0.6
    

    会将绝对值小于 0.6 的所有系数替换为NA

    【讨论】:

    • 这在内部是如何工作的?我认为 R 不能通过引用来修改东西......
    • @Alex 对象没有就地修改而是复制了两次。试试tracemem(cor_relation) 并运行上面的命令。
    猜你喜欢
    • 2021-10-15
    • 2018-09-24
    • 2019-12-07
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    相关资源
    最近更新 更多