r - 在 R 中,如何找到列中包含任何值的行
问题描述
我有两个数据框:df1:我组织中的员工姓名。df2:10 个不同组织的工作人员姓名
我想从 df2 中找到 df1 中列出的人。特别是,我想制作一个附加变量,显示 df2 中的名称是否与 df1 中的名称重叠(是:1,否:0)
我应该如何编码?谢谢
解决方案
你可以尝试这样的事情:
用于data.table
检查列之间df1
和列df2
上的匹配staff_names
。
library(data.table)
手动创建数据表
df1 <- data.table(staff_names = c("John Appleseed", "Daniel Lewis", "Todd Smith"))
df2 <- data.table(staff_names = c("John Appleseed", "Greg Scott", "Tony Hawk"))
代码:
df3 <- df1[df2, on=c(staff_names="staff_names"), overlap:="1"]
df3[is.na(df3)] <- 0
#> staff_names overlap
#> 1: John Appleseed 1
#> 2: Daniel Lewis 0
#> 3: Todd Smith 0
由reprex 包(v0.3.0)于 2020 年 8 月 8 日创建