筛选具有至少一个特定值的行 [英] Filter rows which has at least one of particular values
本文介绍了筛选具有至少一个特定值的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个像这样的数据框.
I have a data frame like this.
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
.
I want to get the rows where the three columns Tour
, Order
Machine
contains at least one D
E
or 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')))
但是它不能正确过滤(返回所有行).有人可以帮我吗?
But it doesn't filter correctly(all the rows are returned). Could anybody please help me?
推荐答案
另一个选项:
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')))
这篇关于筛选具有至少一个特定值的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文