45

2 つのデータ フレーム (A と B) があり、どちらも「C」列があります。データフレームAの列「C」の値がデータフレームBに存在するかどうかを確認したい.

A = data.frame(C = c(1,2,3,4))
B = data.frame(C = c(1,3,4,7))
4

1 に答える 1

106

次のように使用%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



特定の値が 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
于 2012-12-08T05:26:07.033 に答える