web-dev-qa-db-ja.com

Rサブセットにない

可能性のある複製:
データフレームから複数の要素を削除する標準的な方法

Rで、別のグループのサブセットを検索する場合、またはIDに基づいて一致する場合は、次のようなものを使用することを知っています。

subset(df1, df1$id %in% idNums1)

私の質問は、逆の方法、またはIDのベクトルに一致しないアイテムを選択する方法です。

!を使用しようとしましたが、エラーメッセージが表示されます

subset(df1, df1$id !%in% idNums1)

私のバックアップは次のようにすることだと思います:

matches <- subset(df1, df1$id %in% idNums1)
nonMatches <- df1[(-matches[,1]),]

しかし、もう少し効率的なものがあればいいのにと思っています。

54
screechOwl

表現 df1$id %in% idNums1は論理ベクトルを生成します。それを無効にするには、ベクトル全体を無効にする必要があります。

!(df1$id %in% idNums1)
111
Ari B. Friedman