【问题标题】:Extract values from a correlation matrix according to their p-value in a second matrix根据第二个矩阵中的 p 值从相关矩阵中提取值
【发布时间】:2014-04-05 16:08:08
【问题描述】:

我用外部程序 (SparCC) 创建了一个相关矩阵。我也从 SparCC 中的相同数据计算了 p 值,我最终得到了两个导入到 R 中的对象,我们称它们为 corrpval

> ncol(corr)==nrow(corr)
[1] TRUE

> ncol(pval)==nrow(pval)
[1] TRUE

> colnames(corr)==rownames(pval)
[1] TRUE ...

反之亦然。

由于矩阵(或者我应该使用data.frame?)相当大(大约1000个项目),我想通过在@中查找它们的p值来从corr矩阵中提取显着相关性987654329@矩阵,我已经考虑用apply做点什么:

 extracted.values <- apply(corr, nrows(corr), which(pval<0.1))

但是由于which的部分并不是真正的函数,它会输出并出错。 由于which 命令输出了 pval 矩阵中的位置列表,因此对于如何检索每个所需项目的colnamesrownames 有点茫然。

有没有更简单的方法来做我想做的事,比如在 R 中从头开始创建一个相关对象(这可能吗?),它包含 corrpval 矩阵并提取重要值?我在 Python 中找到了this solution,但是如果使用 R 的解决方案没有我想象的那么复杂,我们将不胜感激。

感谢您的帮助!

编辑:python 示例不保留标题。

【问题讨论】:

    标签: r matrix extract apply correlation


    【解决方案1】:

    你可以这样做

    corr[pval < 0.1]
    

    【讨论】:

    • 感谢您的回复,这肯定比我想象的要容易,但它只输出corr 中符合pval 中条件的值数组,如何检索标题以及?
    • 好吧,事实证明我不需要标头,因为输出是一个索引数组,所以对于我的应用程序,值列表就足够了,所以效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多