首页 > 解决方案 > 检查表 1 列 A 中的值是否存在于表 2 列 E 中

问题描述

我有一个表(表 1),其中包含一个具有特定许可证的公司名称的列。我有另一个表(表 2),其中包含活跃公司的所有信息。现在我想检查表 2 中列出的公司是否存在于表 1 中。
所以基本上我想将表 2 列公司名称的值与表 1 列公司名称的值进行比较。类似 v-lookup 的东西。我怎样才能最容易地在 R 中执行这个?

标签: r

解决方案


编造一些数据来说明你的问题并不难。这就是常见问题解答向您展示的内容:

set.seed(42)
table1 <- data.frame(company=sample(LETTERS, 10))
table2 <- data.frame(company=LETTERS)

table1$company 是有许可证的公司的向量,table2$company 是所有公司的向量。现在使用 %in% 来查找 table2 中的哪些公司在 table1 中:

intable1 <- table2$company %in% table1$company

intable1 是一个逻辑向量,table2$company 在 table1$company 中为 TRUE。您可以将此列作为逻辑向量添加到 table2 或打印结果:

table2[intable1, ]
#  [1] A D E G J O Q R V Z
# Levels: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

公司名称是此示例中的因素。如果您希望它们是字符串,请使用

table1 <- data.frame(company=sample(LETTERS, 10), stringsAsFactors=FALSE)
table2 <- data.frame(company=LETTERS, stringsAsFactors=FALSE)

推荐阅读