在任何列中包含字符串的子集行
Subset rows that contain string in any column
我有如下数据集:
Col1 Col2 Col3
abckel NA 7
jdmelw njabc NA
8 jdken jdne
如何对我的数据集进行子集化,使其只保留包含字符串 "abc" 的行?
最终预期输出:
Col1 Col2 Col3
abckel NA 7
jdmelw njabc NA
一个dplyr
解决方案:
library(dplyr)
df %>% filter_all(any_vars(grepl("abc", .)))
输出:
Col1 Col2 Col3
1: abckel <NA> 7
2: 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)
以下应 return 您想要的结果:
d_new <- d[apply(d, 1, function(x) any(grepl("abc", x))), ]
我有如下数据集:
Col1 Col2 Col3
abckel NA 7
jdmelw njabc NA
8 jdken jdne
如何对我的数据集进行子集化,使其只保留包含字符串 "abc" 的行?
最终预期输出:
Col1 Col2 Col3
abckel NA 7
jdmelw njabc NA
一个dplyr
解决方案:
library(dplyr)
df %>% filter_all(any_vars(grepl("abc", .)))
输出:
Col1 Col2 Col3
1: abckel <NA> 7
2: 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)
以下应 return 您想要的结果:
d_new <- d[apply(d, 1, function(x) any(grepl("abc", x))), ]