R не в подмножестве [дубликат]


Возможные Дубликаты:
стандартный способ удаления нескольких элементов из фрейма данных

Я знаю в R, что если вы ищете подмножество другой группы или соответствия на основе id вы бы использовать что-то вроде

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

мой вопрос заключается в том, как сделать наоборот или выбрать элементы, не соответствующие вектору идентификаторов.

Я пробовал использовать ! но получить сообщение об ошибке

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

Я думаю, что моя резервная копия чтобы сделать когда-нибудь так:

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

но я надеюсь, что есть что-то более эффективное.

1 51

1 ответ:

выражение df1$id %in% idNums1 создает логический вектор. Чтобы отрицать это, вам нужно отрицать весь вектор:

!(df1$id %in% idNums1)