包含在任何列串子行

问题描述 投票:-2回答:2

我有一个像下面的数据集:

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

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

最终期望的输出:

  Col1      Col2     Col3
abckel        NA        7
jdmelw     njabc       NA
r grep dplyr grepl
2个回答
2
投票

有了您的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))), ]

1
投票

一个dplyr的解决方案:

library(dplyr)

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

输出:

     Col1  Col2 Col3
1: abckel  <NA>    7
2: jdmelw njabc <NA>
© www.soinside.com 2019 - 2024. All rights reserved.