我想对相关矩阵设定阈值,以仅保留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 x 22结构。看起来它只是一个数字序列(不熟悉R中的数据类型)。
如果有人提出阈值后如何保留相关矩阵结构的建议,我将不胜感激!
使用该行:
corr_matrix[p_vals >= 0.01] <- NA
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句