тест на файлы для извлечения перед выводом экспорта R - PullRequest
0 голосов
/ 17 декабря 2018

Я применил некоторые функции интеллектуального анализа данных в PDF-корпусе (541 PDF-тьфу) и хочу сохранить обработанные данные.Я использовал writeCorpus (corpus_processed)

Но мне нужно добавить t-тест для файлов, чтобы сохранить, ведь только в файлах содержится слово «Америка»

Я нашел эту функцию, но я не смогНе переходите к остальным частям, чтобы адаптировать его под мои нужды.Я думаю также, что это не применимо на корпусе

patterns <- sapply(list.files(corpus_processed, full.names=TRUE), FUN=function(x){
  grep("america", readLines(x))
})

1 Ответ

0 голосов
/ 17 декабря 2018

Ваш текущий подход, кажется, на правильном пути, но вы обрабатываете логику 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 представляет собой список файлов (полные пути) которые содержат ваш материал.Если нет, то вам придется предоставить такой список.

...