web-dev-qa-db-fra.com

R Pas dans le sous-ensemble

Duplicate possible:
Méthode standard pour supprimer plusieurs éléments d’un cadre de données

Je sais en R que si vous recherchez un sous-ensemble d'un autre groupe ou une correspondance basée sur l'id, vous utiliseriez quelque chose comme:

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

Ma question est de savoir comment faire le contraire ou choisir des éléments ne correspondant pas à un vecteur d'identifiants.

J'ai essayé d'utiliser ! mais obtenir le message d'erreur

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

Je pense que ma sauvegarde doit se faire parfois comme ceci:

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

mais j'espère qu'il y a quelque chose d'un peu plus efficace.

54
screechOwl

L'expression df1$id %in% idNums1 produit un vecteur logique. Pour le nier, vous devez nier le vecteur entier:

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