首页 文章

通过p值对相关矩阵进行阈值处理

提问于
浏览
2

我想阈值一个相关矩阵,只保留p值<0.01的值 . 我之前在StackOverflow上看过这个问题,并尝试了建议的代码,但是当应用阈值时,矩阵的结构会消失 .

例如,我有一堆数字的矩阵......

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比22的结构 . 看起来它只是一个数字序列(不熟悉R中的数据类型) .

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

1 回答

  • 2

    使用该行:

    corr_matrix[p_vals >= 0.01] <- NA
    

相关问题