我有一个这样的数据框。
df
Tour Order Machine Company
[1] A D D B
[2] B B A G
[3] A E B A
[4] C B C B
[5] A G G C
我想要得到的行,其中的三列Tour
,Order
Machine
至少包含一个D
E
或G
。
结果应为:
Tour Order Machine Company
[1] A D D B
[3] A E B A
[5] A G G C
我的尝试:
df %>%
filter(any(c(Tour, Order, Machine) %in% c('D', 'E', 'G')))
但是它不能正确过滤(返回所有行)。有人可以帮我吗?
另外一个选项:
df[rowSums(sapply(df[-4], '%in%', c('D', 'E', 'G'))) > 0,]
结果:
Tour Order Machine Company
1 A D D B
3 A E B A
5 A G G C
与dplyr
您一起应添加rowwise()
:
df %>%
rowwise() %>%
filter(any(c(Tour, Order, Machine) %in% c('D', 'E', 'G')))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句