从一个数据框的列搜索另一个数据框的

时间:2019-07-27 10:40:59

标签: r

我需要搜索数据框final1的数据项LC,它不在数据帧lctolc的项ToLC中。

操作方法。

我尝试使用合并,但是它会在新数据框中创建一些额外的行。

最终1:

   Item  LC     SS Freq
1   A   MW92    20  0
2   A   RM02    10  0
3   A   RM03    5   1
4   A   LO99    99  0
5   B   WK14    112 0
6   B   RS11    30  1

Item <- c("A", "A", "A", "A", "B", "B")
LC <- c("MW92", "RM02", "RM03" ,"LO99", "WK14", "RS11")
SS <- c(20, 10, 5, 99, 112, 30)
Freq <- c(0, 0, 1, 0, 0, 1)
final1 <- data.frame(Item, LC, SS, Freq, stringsAsFactors = F)

lctolc:

   Item  LC     ToLC
1   A   MW92    OY01
2   A   OY01    RM11
3   A   RM11    RM02
4   B   WK14    RS11
5   B   RS11    ZM78

Item <- c("A", "A", "A", "B", "B")
LC <- c("MW92", "OY01", "RM11", "WK14", "RS11")
ToLC <- c("OY01", "RM11", "RM02", "RS11", "ZM78")
lctolcl <- data.frame(Item, LC, ToLC, stringsAsFactors = F)

输出:

   Item  LC     SS Freq
1   A   MW92    20  0
2   A   RM03    5   1
3   A   LO99    99  0
4   B   WK14    112 0

有人可以帮我怎么做吗?

2 个答案:

答案 0 :(得分:1)

可以使用match或等效的%in%来执行。

> final1[!(final1$LC %in% lctolcl$ToLC), ]
  Item   LC  SS Freq
1    A MW92  20    0
3    A RM03   5    1
4    A LO99  99    0
5    B WK14 112    0

答案 1 :(得分:0)

来自anti_join的{​​{1}}的选项

tidyverse