在R中对相关矩阵应用阈值

3

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

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

感谢您的帮助!

有关IT技术的内容,请您提供具体信息。
2个回答

6

另一种选择:

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

谢谢,它完美地运行了。但我不得不删除“abs”,否则它会显示负值,而我只需要正值。 - jessy

5
is.na(cor_relation) <- abs(cor_relation) < 0.6

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


这个东西的内部工作原理是什么?我以为 R 不能通过引用修改东西... - Alex
1
@Alex 对象并没有被原地修改,而是被复制了两次。尝试使用 tracemem(cor_relation) 命令并运行上述命令。 - Sven Hohenstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接