r - 标记R中数据框之间的公共行
问题描述
我正在尝试标记较小数据帧常见的较大数据帧的行。
我已经研究过类似的主题(在 R 中查找两个数据帧之间的公共 ID 查找重复行的索引 查找所有重复行,包括“具有较小下标的元素”),但无法弄清楚如何使其工作如下方法:
df1<- data.frame(id = c(1, 2, 3, 4, NA, 5, 6, NA, NA, 7, 8))
df2<- data.frame(id = c(NA, 8, 3, NA, 1))
# Result
> df1
id match
1 1 TRUE
2 2 FALSE
3 3 TRUE
4 4 FALSE
5 NA FALSE
6 5 FALSE
7 6 FALSE
8 NA FALSE
9 NA FALSE
10 7 FALSE
11 8 TRUE
解决方案
您可以使用%in%
来检查匹配项并is.na
避免与NA
.
df1$match <- df1$id %in% df2$id & !is.na(df1$id)
df1
# id match
#1 1 TRUE
#2 2 FALSE
#3 3 TRUE
#4 4 FALSE
#5 NA FALSE
#6 5 FALSE
#7 6 FALSE
#8 NA FALSE
#9 NA FALSE
#10 7 FALSE
#11 8 TRUE
推荐阅读
- c# - 当 WebApi 在单独程序集中的内存中托管时,DI 不起作用
- unetstack - UnetStack - 物理参数
- javascript - 使用 jQuery 在 DOM 中移动新的子元素
- python - WebScraping 的多处理不会在 Windows 和 Mac 上启动
- r - 如何根据点和斜率画线?(标清线)
- javascript - javascript在同一页面的框架中打开url
- c++ - 无符号整数到有效数字
- development-environment - 为什么在本地网站副本上工作比在网站上工作更好?
- python - matplotlib 3D 曲面图 - 平滑
- javascript - HTML 元素未显示在 Salesforce 中呈现为 PDF 的 Visualforce 页面中