【问题标题】:How do I intersect two data.frames in R? [duplicate]如何在 R 中相交两个 data.frames? [复制]
【发布时间】:2017-12-07 14:59:29
【问题描述】:

我有两个表在 data.frame 结构中。表 1 包含 200 个基因 ID(字母和数字)的列,表 2 包含 4,000 个基因 ID(行)的列表以及 20 个附加列。我想将这两个表相交并生成一个新的表 3,其中包含 200 个基因 ID 以及 20 列中的相关信息。

table3

【问题讨论】:

  • 欢迎来到 SO!请阅读How to Askminimal reproducible example ...然后编辑您的问题!
  • 欢迎来到 SO。您的问题实际上是关于一个有据可查的任务。你可以看看 left_joinright_join 包中的 dplyr

标签: r google-genomics


【解决方案1】:

你想要类似的东西

table3 <- merge(table1, table2, by.x="id", by.y="id", all.x=T, all.y=F)

您也许还可以通过以下方式进行子集化:

table3 <- table2[table2$id %in% table1$id,]

reprex 会让这篇文章更有可能得到很好的回应,但你应该能够找到一些东西来帮助你进行一些搜索。如果这些都不起作用,因为您遇到了一个以前没有人问过的独特问题,那么给予是一种代表,我们可以尝试为您提供替代解决方案。

编辑:对于更多的上下文,here's 我上周回答了一个类似的问题,here's 是一篇关于理解合并的好帖子。

【讨论】:

  • 非常感谢。我不能告诉你在你发帖之前我搜索了多少。绝对学习如何更好地搜索这个很棒的资源。再次感谢。
  • 我了解到,我最有价值的技能之一不是能够解决问题,而是知道要搜索的关键字以找到其他人对我的问题的解决方案。
【解决方案2】:

我推荐dplyr 包。在我看来,它比merge 更直观。

你可以输入:

table3 <- left_join(table1, table2, by = "unique_id")

【讨论】:

  • OuterJ
猜你喜欢
  • 2021-03-08
  • 2013-01-24
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 2013-07-08
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多