【发布时间】:2013-12-23 04:04:53
【问题描述】:
我有一个包含相关值(-1.0 到 +1.0)的 71521 行 X 894 列数据框。行名称是基因名称,而列名称是 miRNA 名称。
我想创建一个仅包含以下相关值的子数据框(或矩阵,没关系): 1) -1.0 和 -0.9 之间(负校正) 2) +0.9 和 +1.0 之间(正校正) 3) 介于 -0.05 和 +0.05 之间(无相关性)
我使用了which() 函数,发现我的数据框中有 4,120 个负 corr、380,132 个正 corr 和 11,360,858 个非 corr 值。
我想创建一个包含这些相关分数的子集数据框,并保留相应的行和列名称,以识别与该分数对应的 miRNA-mRNA 关系。
基本上,一个包含 3 列的数据框或矩阵: miRNA_name ; mRNA_name ; Corr_Score
我尝试过编写嵌套的for loops,但我想知道是否有人知道更有效的方法。也许apply 和/或data.tables 的某种组合?
【问题讨论】:
-
你能显示一些数据吗?使用 head() 对数据框进行切片。对于您的问题,子集()或聚合()可能会有所帮助。
-
“创建子数据框...”基于三个条件。这是否意味着您需要一个三个子数据帧,或者只有一个结合了三个条件的子数据帧?
-
@jlhoward - 无论哪种方式都可以。
标签: r performance subset bioinformatics correlation