Спасибо за grep using a character vector with multiple patterns, я тоже выяснил свою проблему. Вопрос здесь в том, как найти несколько значений с помощью функции Grep, и раствор либо эти:R: Почему не работает цикл или c() для функции grep?
grep("A1| A9 | A6")
или
toMatch <- c("A1", "A9", "A6")
matches <- unique (grep(paste(toMatch,collapse="|")
Таким образом, я использовал второй предложение, так как я имел много значений в искать.
Но мне любопытно, почему c() или для цикла не работает вместо |. Прежде чем я исследовал возможные решения в StackOverflow и нашел рекомендации выше, я попробовал два варианта, которые я продемонстрирую ниже:
Во-первых, то, что я написал в R было что-то вроде этого:
find.explore.l<-lapply(text.words.bl ,function(m) grep("^explor",m))
Но тогда я должен был много слов «Grep», так что я попробовал это
find.explore.l<-lapply(text.words.bl ,function(m) grep(c("A1","A2","A3"),m))
это не сработало, поэтому я попытался еще один (XXX список слов, которые я должен найти в текст)
for (i in XXX){
find.explore.l<-lapply(text.words.bl ,function(m) grep("XXX[i]"),m))
.......(more lines to append lines etc)
}
и казалось, что R попытался сопоставить XXX [i], а не слова внутри. Почему не может c() и для цикла для grep возвращать правильные результаты? Кто-нибудь, пожалуйста, дайте мне знать! Я так любопытно: P
'Grep (с ("A1", "A2", "A3"), м)) 'не работает, потому что' grep' не векторизован над аргументом 'pattern' - это должно быть одно регулярное выражение. 'grep (" XXX [i] "), m))' не работает, потому что у вас есть кавычки вокруг 'XXX [i]', поэтому он интерпретируется как строковый литерал, а не как объект. – nrussell
Можете ли вы показать некоторые входные и выходные данные? Вы считали функцию «Vectorize»? – A5C1D2H2I1M1N2O1R2T1
'grep (c (« A1 »,« A2 »,« A3 »), m))' нарушает синтаксис grep. 'grep (pattern, x, ...' .Программа должна быть одной строкой, вы предоставили вектор из трех символьных строк.Другой способ выразить это 'length (pattern)' должен быть '1'. Кроме того, 'function (m) grep (" XXX [i] "), m))' имеет неуместную закрытую paranthesis после "XXX [i]" '. Снова проверьте документацию по grep и ее примерам. –