Ваш текущий подход, кажется, на правильном пути, но вы обрабатываете логику grep
не полностью.Поскольку readLines
будет возвращать вектор строк для каждого файла, вам нужно обработать grep
, вероятно, возвращая вектор индексов.Определение файла, который соответствует, заключается в том, что вектор, возвращаемый из grep
, не будет пустым.
files <- list.files(corpus_processed, full.names=TRUE)
matches <- sapply(files, function(x) {
conn <- file(x, open="r")
count <- length(grep("\\bamerica\\b", readLines(conn)))
return(count > 0)
})
file_matches <- files[matches]
В приведенном выше коде matches
должен быть логическим вектором, который затем может быть использован для подмножестваваш исходный вектор файлов для получения тех файлов, которые содержат america
.
Редактировать:
В приведенном выше сценарии предполагается, что files
представляет собой список файлов (полные пути) которые содержат ваш материал.Если нет, то вам придется предоставить такой список.