首页 > 解决方案 > 在 R 中,如何找到列中包含任何值的行

问题描述

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

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

我应该如何编码?谢谢

标签: r

解决方案


你可以尝试这样的事情:

用于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 日创建


推荐阅读