我有一个像下面的数据集:
Col1 Col2 Col3
abckel NA 7
jdmelw njabc NA
8 jdken jdne
如何子集我的数据集,使其仅保留包含字符串“abc”行?
最终期望的输出:
Col1 Col2 Col3
abckel NA 7
jdmelw njabc NA
有了您的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))), ]
一个dplyr
的解决方案:
library(dplyr)
df %>% filter_all(any_vars(grepl("abc", .)))
输出:
Col1 Col2 Col3
1: abckel <NA> 7
2: jdmelw njabc <NA>