选择任何列中出现特定值的行

时间:2016-10-19 15:10:29

标签: r dplyr

我有一个数据集,我想找到任何列中出现特定值的所有行。

让我们使用mtcars数据集 - 我想找到值为'4'的所有行...

library(dplyr)

mtcars %>% filter( any( %in% 4))???

2 个答案:

答案 0 :(得分:0)

您可以使用rowSums构建子集条件:

dplyr::filter(mtcars, rowSums(mtcars == 4) != 0)

#     mpg cyl  disp  hp drat    wt  qsec vs am gear carb
# 1  21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
# 2  21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
# 3  22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
# 4  14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
# 5  24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
# 6  22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
# ...

答案 1 :(得分:0)

在基地R:

apply(mtcars,1,function(x)any(x==4))