在r中同时过滤各种文本

时间:2018-03-09 18:01:52

标签: r dataframe filter

我有这样的datafrme:

v1 v2 v3
2  4  hello
3  1  hello
4  5  hi
7  8  hi
6  0  greetings
8  0  greetings
9  7  hola

我需要从v3,hello,greetings和hola中过滤。我试过这个:

x = filter(data$v3, c("hello","greetings","hola"))

但不起作用,我的原始数据是一个非常广泛的数据框,包含110000行和86列。我需要过滤三个以上。我寻找的数据框如下:

v1 v2 v3
2  4  hello
3  1  hello
6  0  greetings
8  0  greetings
9  7  hola

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

filter需要作为第二个参数;

  

根据.data中的变量定义的逻辑谓词。   多个条件与&组合。只有行所在的条件   保留评估为TRUE。

因此,我们必须为每行传递返回TRUEFALSE的语句。您可以使用%in%运算符,例如:

library(dplyr)
df %>% filter(v3 %in% c("hello","greetings","hola"))

返回

  v1 v2        v3
1  2  4     hello
2  3  1     hello
3  6  0 greetings
4  8  0 greetings
5  9  7      hola

希望这有帮助。