ind <- apply(sapply(df1[c("Tour","Order","Machine")],`%in%`,c('D', 'E', 'G')),1,any)
df1[ind,]
# Tour Order Machine Company
# 1 A D D B
# 3 A E B A
# 5 A G G C
sapply
вернет матрицу логических значений, содержащую совпадение для каждой ячейки.
apply
проверит, является ли какой-либо из них TRUE
, что означает, что вы хотите сохранить строку
- Фильтруем входные данные
Версия dplyr:
df1 %>%
filter_at(c("Tour","Order","Machine"),any_vars(.%in% c('D', 'E', 'G')))
# Tour Order Machine Company
# 1 A D D B
# 2 A E B A
# 3 A G G C
данные
df1 <- read.table(header=TRUE,stringsAsFactors=FALSE,text="
Tour Order Machine Company
A D D B
B B A G
A E B A
C B C B
A G G C")