在R中,如何查找具有列中包含任何值的行

时间:2020-08-08 09:38:33

标签: r

我有两个数据框: df1:我组织中员工的姓名。 df2:10个不同组织的员工姓名

我想从df2中找到df1中列出的人。特别是,我想做一个额外的变量,以显示df2中的名称是否与df1中的名称重叠(是:1,否:0)

该如何编码? 谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

使用data.table来检查df1列上df2staff_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 package(v0.3.0)于2020-08-08创建