R 检查第二个数据帧中是否存在一个数据帧列中的值
我有两个数据帧(A和B),都有一列“C”。我想检查数据框A中列“C”中的值是否存在于数据框B中R 检查第二个数据帧中是否存在一个数据帧列中的值,r,dataframe,R,Dataframe,我有两个数据帧(A和B),都有一列“C”。我想检查数据框A中列“C”中的值是否存在于数据框B中 A = data.frame(C = c(1,2,3,4)) B = data.frame(C = c(1,3,4,7)) 在%中使用%,如下所示 A$C %in% B$C 这将告诉您A的C列的哪些值在B中 返回的是一个逻辑向量。在您的示例的特定情况下,您可以得到: A$C %in% B$C # [1] TRUE FALSE TRUE TRUE 您可以将其用作A行的索引或A$C的索引,以获
A = data.frame(C = c(1,2,3,4))
B = data.frame(C = c(1,3,4,7))
在%中使用
%,如下所示
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
如果您想知道特定值是否在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中的第二个值是否在B$C中。是的,绝对是。在原始示例中,A$C[2]
是2
,因此缺乏清晰性。我编辑了我示例中的注释,希望能够澄清;我们如何扩展这种技术来搜索给定变量中的字符串?我们可以结合str\u detect
吗?setdiff
可能会引起兴趣