【问题标题】:Thresholding a correlation matrix by p-value通过 p 值对相关矩阵进行阈值处理
【发布时间】:2015-09-03 15:34:01
【问题描述】:

我想对相关矩阵设置阈值以仅保留 p 值

例如,我有一个由一堆数字组成的矩阵...

data <- matrix(rnorm(6),100,22)

然后我得到一个相关矩阵...

corr_subj_data <-rcorr(data)
corr_matrix <- corr_subj_data$r
p_vals <- corr_subj_data$P

我尝试使用 numel(matlab 包)复制我在 Matlab 中执行此任务的代码。但是,这里似乎行不通。

for(idx in numel(p_vals)) {
pval <- P_vals[idx]
    if (pval > 0.01){
        corr_matrix[idx] <- NA
}}

这里基本上我只是想遍历矩阵中的每个p值,如果大于0.01,将相关矩阵中的对应值替换为“NA”。

然后我查了一下,发现下面的建议代码:

corr_matrix[p_vals < 0.01]

这正确设置了相关矩阵的阈值,但我失去了我拥有的 22 x 22 结构。看起来它只是一个数字序列(不熟悉 R 中的数据类型)。

如果有人对如何在阈值化后保留相关矩阵的结构有任何建议,我将不胜感激!

【问题讨论】:

    标签: r matrix correlation reshape


    【解决方案1】:

    使用线路:

    corr_matrix[p_vals >= 0.01] <- NA
    

    【讨论】:

    • 哇,这太简单了,我绝对应该想到这一点。非常感谢您的帮助!
    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2014-08-17
    • 2018-10-31
    • 2018-09-24
    • 1970-01-01
    • 2013-09-22
    相关资源
    最近更新 更多