我有兩個數據幀(A,B)具有相同的列名(C),但在該列中可以具有不同的唯一值。我想檢查數據幀(B)中是否存在數據幀(A)中列(C)中的'值'。檢查一個數據幀中是否存在值
A = data.frame(C=c(1,2,3,4))
B = data.frame(C=c(1,3,4,7))
在上面的例子中,我要檢查,如果「2」出現在B或不 是否有任何一個襯墊不循環,因爲我有相當大的文件,必須在每一行進行檢查。
我有兩個數據幀(A,B)具有相同的列名(C),但在該列中可以具有不同的唯一值。我想檢查數據幀(B)中是否存在數據幀(A)中列(C)中的'值'。檢查一個數據幀中是否存在值
A = data.frame(C=c(1,2,3,4))
B = data.frame(C=c(1,3,4,7))
在上面的例子中,我要檢查,如果「2」出現在B或不 是否有任何一個襯墊不循環,因爲我有相當大的文件,必須在每一行進行檢查。
使用%in%
如下
A$C %in% B$C
它會告訴你的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
最後一個表達式會告訴你在一個$ C的第二個值是否在B $℃。 –
是的,絕對。在原始示例中,「A $ C [2]」是「2」,因此缺乏清晰度。我編輯了我的示例中的評論,希望能夠澄清。 –
'setdiff'可能感興趣 – James