代码之家  ›  专栏  ›  技术社区  ›  nak5120

在任何列中包含字符串的子集行

  •  -2
  • nak5120  · 技术社区  · 6 年前

    我的数据集如下所示:

      Col1      Col2     Col3
    abckel        NA        7
    jdmelw     njabc       NA
         8     jdken     jdne
    

    如何对数据集进行子集,使其只保留包含字符串“abc”的行?

    最终预期产出:

      Col1      Col2     Col3
    abckel        NA        7
    jdmelw     njabc       NA
    
    2 回复  |  直到 4 年前
        1
  •  2
  •   Brigadeiro    6 年前

    使用data.frame:

    d <- data.frame("Col1" = c("abckel", "jdmelw", 8),
                    "Col2" = c(NA, "njabc", NA),
                    "Col3" = c(7, NA, "jdne"),
                    stringsAsFactors = F)
    

    以下内容应返回您想要的结果:

    d_new <- d[apply(d, 1, function(x) any(grepl("abc", x))), ]
    
        2
  •  1
  •   arg0naut91    6 年前

    A. dplyr

    library(dplyr)
    
    df %>% filter_all(any_vars(grepl("abc", .)))
    

    输出:

         Col1  Col2 Col3
    1: abckel  <NA>    7
    2: jdmelw njabc <NA>