r - 如何根据第二个数据帧中的外观保留一个数据帧中的数据?
问题描述
我有 2 个包含类似数据的数据框。我知道数据框 2 中的数据在整个数据框 1 中重复出现。我想从数据框 1 中提取所有行,这些行的 ID 与数据框 2 中看到的 ID 匹配。例如,数据框 1 的行长约为 40,000 行蛋白质和 ID 列:
Protein | ID|
# 4521 33PB
# 6743 67TR
# 6743 67TR
# 6743 63YH
# 5571 84RW
Dataframe 2 只有大约 10 行长,包含多列信息,但我只关心 ID 列。数据框 2:
Length | Family | ID
# 700 transferase 33PB
# 478 Cytochrome 67TR
# 341 Cytochrome 23FD
# 902 Methyl 00QA
# 554 p450 76LK
我正在尝试生成一个数据框,其中包含来自数据框 1 的 ID,其中包含在数据框 2 中找到的 ID,同时也为了维护其行中的相关蛋白质。例如,我希望输出为:
Protein | ID
# 4521 33PB
# 6743 67TR
# 6743 67TR
我尝试使用intersect()
ID 列,但是这总是返回一个空数据框,filter()
使用%in%
. 我也尝试过if(){}
声明,但是这些声明并没有返回我的结果。我不确定是否有一个简单的函数可以使用,或者我是否应该设置一个while()
循环。不过我没有这方面的经验,所以不知道从哪里开始。
任何建议都将不胜感激,我已经坚持了几个小时。先感谢您。
解决方案
只是为了说明我的评论:
library(tidyverse)
df1 %>% filter(ID %in% unique(df2$ID))
#> Protein ID
#> 1 4521 33PB
#> 2 6743 67TR
#> 3 6743 67TR
由reprex 包(v2.0.1)于 2021-08-08 创建
使用@TarJae 提供的数据框
推荐阅读
- python - 余弦相似度的幼稚实现有什么问题?
- android - 即使在设置 match_parent 之后也留下空白
- hyperhtml - hyperHTML for 10,000 Buttons
- azure-web-app-service - 重新启动 Azure 应用服务修复异常
- prestashop - Prestashop 信用卡支付模块
- php - 使用 JsonModel 返回一个空数组作为对象
- python - Iterparse big XML,内存占用少,并获取所有,甚至嵌套的序列元素
- swift3 - 如何在pdfkit swift中添加圆形注释?
- pytorch - 如何在 Google Colab 上安装 PyTorch v1.0.0+?
- mongodb - Mongodb聚合,对象内的对象总和