我需要大数据框进行基因组分析 . 每个数据帧都有500k行和100列 . 这100列代表每种基因的测量值 . 我想要做的是计算两个数据农场中所有100个值的每个基因的Spearman相关系数 . 例:
df1
genename x1 x2 x3 ..............x100
gene1 0.236 0.589 0.896 0.789
gene2 -0.361 0.782 0.583 0.478
df2
genename x1 x2 x3 ...............x100
gene1 0.101 0.256 0.026 0.0.56
gene2 -0.231 0.569 0.158 0.0223
这里我想要的是找到所有100个obs的gene1的所有相关系数 . 这意味着每个基因应该有100个相关性coff
1 回答
由于每一行都被标记为geneX,因此你的描述使得它听起来像是在尝试找到df1中的xX和df2中的xX之间的相关系数,其中行将是您的观察结果,因此措辞"I will have 100 correlation coefficients for each gene"让我感到困惑 . 假设您试图找到类似标记的
df1
和df2
行之间的Spearman相关性(即df1和df2中gene1之间的相关性),可以这样做:考虑到data.frames的大小,这可能需要一些时间 . 在我的机器上执行100000行矩阵大约需要20秒 . 如果您可以访问多个核心,则可能需要查看
mclapply
.