我有这样的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
感谢您的帮助!
答案 0 :(得分:1)
filter
需要作为第二个参数;
根据.data中的变量定义的逻辑谓词。 多个条件与&组合。只有行所在的条件 保留评估为TRUE。
因此,我们必须为每行传递返回TRUE
或FALSE
的语句。您可以使用%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
希望这有帮助。