Подмножество фрейма данных по нескольким логическим условиям строк для удаления

Я хотел бы разделить (отфильтровать) фрейм данных, указав, какие строки , а не (! ), нужно сохранить в новом фрейме данных. Вот упрощенный пример фрейма данных:

data
v1 v2 v3 v4
a  v  d  c
a  v  d  d
b  n  p  g
b  d  d  h    
c  k  d  c    
c  r  p  g
d  v  d  x
d  v  d  c
e  v  d  b
e  v  d  c

Например, если в строке столбца v1 есть «b», «d» или «e», я хочу избавиться от этой строки наблюдений, создав следующий фрейм данных:

v1 v2 v3 v4
a  v  d  c
a  v  d  d
c  k  d  c    
c  r  p  g

Мне удавалось создавать подмножества на основе одного условия за раз. Например, здесь я удаляю строки, где v1 содержит «b»:

sub.data <- data[data[ , 1] != "b", ]

Однако у меня много, много таких условий, поэтому делать это по одному нежелательно. Я не добился успеха со следующим:

sub.data <- data[data[ , 1] != c("b", "d", "e")

или

sub.data <- subset(data, data[ , 1] != c("b", "d", "e"))

Я пробовал и другие вещи, например !% В% , но этого, похоже, не существует. Есть идеи?

37
задан Henrik 13 December 2017 в 13:01
поделиться