Просто используйте sapply()
, который применяется grep()
по столбцам.Значения должны быть перечислены и отсортированы, поэтому вы получите строки.
df1[sort(unique(unlist(sapply(df1, function(x) grep('abc', x))))), ]
# V1 V2 V3 V4 V5
# 1 a abc|ccc|ggg ttt|ccc|shg yyy|lmn|trs abc|ggt|hgy
# 2 b atc|cjc|ggg ttt|ccc|shg abc|lmn|trs abc|opq|sss
# 3 c auc|chc|ggg abc|ccc|shg gtc|lmn|trs hyt|lki|ddd
Данные
df1 <- structure(list(V1 = structure(1:4, .Label = c("a", "b", "c",
"d"), class = "factor"), V2 = structure(c(1L, 3L, 4L, 2L), .Label = c("abc|ccc|ggg",
"aoc|cfc|ggg", "atc|cjc|ggg", "auc|chc|ggg"), class = "factor"),
V3 = structure(c(2L, 2L, 1L, 2L), .Label = c("abc|ccc|shg",
"ttt|ccc|shg"), class = "factor"), V4 = structure(c(3L, 1L,
2L, 3L), .Label = c("abc|lmn|trs", "gtc|lmn|trs", "yyy|lmn|trs"
), class = "factor"), V5 = structure(1:4, .Label = c("abc|ggt|hgy",
"abc|opq|sss", "hyt|lki|ddd", "rmn|wde|tre"), class = "factor")), class = "data.frame", row.names = c(NA,
-4L))