#r
#r
Вопрос:
Я хочу удалить строки, которые имеют ID = 3, но ПОЛ не равен «F».
df<-data_frame(ID=c(2,3,3,3,3,5,6,7,8,9),GENDER=c("M","M","F","F","F","M","F","F","M","F"))
Ответ №1:
Мы можем создать логическое выражение в filter
и negate ( !
) целое, чтобы удалить эти строки
library(dplyr)
df %>%
filter(!(ID == 3 amp; GENDER != "F"))
или то же самое с subset
from base R
subset(df, !(ID == 3 amp; GENDER != "F"))
Ответ №2:
Другой способ сформулировать условие — выбрать строки, в которых ID
не равно 3 или GENDER = 'F'
.
subset(df, ID != 3 | GENDER == 'F')
# ID GENDER
# <dbl> <chr>
#1 2 M
#2 3 F
#3 3 F
#4 3 F
#5 5 M
#6 6 F
#7 7 F
#8 8 M
#9 9 F
и с dplyr
filter
:
dplyr::filter(df, ID != 3 | GENDER == 'F')