Простой вопрос "есть ли лучший путь"? Я хочу найти, если какая-либо ячейка в data.frame содержит подстроку, которую я ищу:
d=data.frame(V1=c("xxx","yyy","zzz"), V2=c(NA,"ewruinwe",NA))
grepl("ruin",d[2,2]) #TRUE
grepl("ruin",d) #FALSE FALSE
any(grepl("ruin",as.character(as.matrix(d)))) #TRUE
Последняя строка делает то, что я хочу, но выглядит так некрасиво, что мне интересно, упустил ли я что-то попроще.
Справочная информация: d
является одним из элементов t=readHTMLTable(url)
(пакет XML). Я использовал подход d [2,2], чтобы проверить наличие сообщения об ошибке, и обнаружил, что веб-сайт иногда добавляет другую строку в таблицу HTML, помещая сообщение об ошибке, которое я искал, в другую ячейку.
ОБНОВЛЕНИЕ: так что, похоже, два варианта (благодаря математическому .coffee и Роману Луштрику):
any(grepl("ruin",as.matrix(d)))
any(apply(d, 2, function(x) grepl("ruin", x)))