所以我有三个包含此信息的数据框
> dim(result)
[1] 652265 10
> dim(rat)
[1] 107190 2
> dim(mouse)
[1] 219016 2
> names(result)
[1] "ensembl_gene_id" "ensembl_transcript_id"
[3] "external_gene_name" "mmusculus_homolog_ensembl_gene"
[5] "mmusculus_homolog_associated_gene_name" "rnorvegicus_homolog_ensembl_gene"
[7] "rnorvegicus_homolog_associated_gene_name" "celegans_homolog_ensembl_gene"
[9] "celegans_homolog_associated_gene_name" "celegans_homolog_ensembl_gene_transcript_id"
> names(rat)
[1] "rnorvegicus_homolog_ensembl_gene" "rnorvegicus_homolog_ensembl_transcript_id"
> names(mouse)
[1] "mmusculus_homolog_ensembl_gene" "mmusculus_homolog_ensembl_transcript_id"
我的数据框是这样的
head(result)
ensembl_gene_id ensembl_transcript_id external_gene_name mmusculus_homolog_ensembl_gene
1 ENSG00000198888 ENST00000361390 MT-ND1 ENSMUSG00000064341
2 <NA> <NA> <NA> <NA>
3 ENSG00000198804 ENST00000361624 MT-CO1 ENSMUSG00000064351
4 ENSG00000198712 ENST00000361739 MT-CO2 ENSMUSG00000064354
5 <NA> <NA> <NA> <NA>
6 <NA> <NA> <NA> <NA>
mmusculus_homolog_associated_gene_name rnorvegicus_homolog_ensembl_gene
1 mt-Nd1 ENSRNOG00000030644
2 <NA> <NA>
3 mt-Co1 ENSRNOG00000034234
4 mt-Co2 ENSRNOG00000030371
5 <NA> <NA>
6 <NA> <NA>
rnorvegicus_homolog_associated_gene_name celegans_homolog_ensembl_gene
1 Mt-nd1 WBGene00010959
2 <NA> <NA>
3 Mt-co1 WBGene00010964
4 Mt-co2 WBGene00010965
5 <NA> <NA>
6 <NA> <NA>
celegans_homolog_associated_gene_name celegans_homolog_ensembl_gene_transcript_id
1 MTCE.11.1
2 <NA> <NA>
3 ctc-1 MTCE.26.1
4 ctc-2 MTCE.31.1
5 <NA> <NA>
6 <NA> <NA>
> head(rat)
rnorvegicus_homolog_ensembl_gene rnorvegicus_homolog_ensembl_transcript_id
1 ENSRNOG00000033395 ENSRNOT00000044979
2 ENSRNOG00000070901 ENSRNOT00000119508
3 ENSRNOG00000031391 ENSRNOT00000045306
4 ENSRNOG00000067904 ENSRNOT00000099225
5 ENSRNOG00000067904 ENSRNOT00000099225
6 ENSRNOG00000067904 ENSRNOT00000099225
> head(mouse)
mmusculus_homolog_ensembl_gene mmusculus_homolog_ensembl_transcript_id
1 ENSMUSG00000064341 ENSMUST00000082392
2 ENSMUSG00000064345 ENSMUST00000082396
3 ENSMUSG00000064351 ENSMUST00000082402
4 ENSMUSG00000064354 ENSMUST00000082405
5 ENSMUSG00000064356 ENSMUST00000082407
6 ENSMUSG00000064357 ENSMUST00000082408
我尝试了基于 sqldf 的解决方案,因为当我尝试时 dplyr 卡住了
joined_data <- sqldf("
SELECT *
FROM result
LEFT OUTER JOIN rat ON result.rnorvegicus_homolog_ensembl_gene = rat.rnorvegicus_homolog_ensembl_gene
LEFT OUTER JOIN mouse ON result.mmusculus_homolog_ensembl_gene = mouse.mmusculus_homolog_ensembl_gene
")
问题是它刚刚达到了我所拥有的系统的上限
现在,如果有任何建议或帮助,我们将非常感激,那么执行相同操作的优化方法是什么
对于这种大小的数据集,您将无法简单地以简单的方式连接数据并继续以交互方式处理它。最好的方法取决于您的期望。
也许您需要在样品中工作。也许将数据分割成可管理大小的块。也许将它们加载到 Spark 实例中。或者可以使用 SQL 执行您需要的计算。
如果您想要的只是连接的数据,您只需将它们加载到数据库中,执行连接,然后导出为 CSV 或其他格式。无需将它们加载到数据框中。
说出您的意图,其他人可以更好地帮助您。