【问题标题】:Filter various text at the same time in r在r中同时过滤各种文本
【发布时间】:2018-03-09 18:01:52
【问题描述】:

我有一个这样的数据框:

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、greeting 和 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

感谢您的帮助!

【问题讨论】:

    标签: r dataframe filter


    【解决方案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
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-14
      • 2022-12-08
      • 1970-01-01
      • 2011-02-18
      • 2020-01-19
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多