我有两个数据框(A和B),它们都有一个名为“C”的列。 我想检查数据帧A中“C”列中的值是否存在于数据帧B中。
A = data.frame(C = c(1,2,3,4))
B = data.frame(C = c(1,3,4,7))
使用%in%
的示例如下
A$C %in% B$C
这将告诉您A表中列C的哪些值在B表中。
返回的是逻辑向量。在您的示例特定情况下,返回结果如下:
A$C %in% B$C
# [1] TRUE FALSE TRUE TRUE
你可以将它用作A
的行索引,或者将其用作A$C
的索引以获取实际值:
# as a row index
A[A$C %in% B$C, ] # note the comma to indicate we are indexing rows
# as an index to A$C
A$C[A$C %in% B$C]
[1] 1 3 4 # returns all values of A$C that are in B$C
我们也可以对它取反:A$C[!A$C %in% B$C]
[1] 2 # returns all values of A$C that are NOT in B$C
2 %in% B$C # "is the value 2 in B$C ?"
# FALSE
A$C[2] %in% B$C # "is the 2nd element of A$C in B$C ?"
# FALSE
A$C[2]
是2
,因此缺乏清晰度。我编辑了我的示例中的注释,希望能够澄清。 - Ricardo Saportastr_detect
结合使用吗? - Ben
setdiff
可能会引起兴趣。 - James