Моя компания документирует резюме политик/услуг для каждого клиента в файле в формате pdf. Эти файлы ежегодно объединяются в большой набор данных. Одна строка на клиента и столбцы являются переменными в документе клиента. Этих файлов пара тысяч и в каждом примерно по 20-30 переменных. Я хочу автоматизировать этот процесс, создав data.frame с каждой строкой, представляющей клиента, а затем извлекая переменные для каждого клиента из их pdf-документа. Я могу создать список или data.frame всех клиентов по имени файла pdf в каталоге, но не знаю, как создать цикл, который извлекает каждую переменную, которая мне нужна для каждого документа. В настоящее время у меня есть два разных метода, между которыми я не могу выбрать, а также мне нужна помощь с циклом, который захватывает переменные, которые мне нужны для каждого клиентского документа. Мой код и ссылки на два фиктивных файла приведены ниже. Любая помощь будет оценена по достоинству!
Способ 1: pdftools
Преимущество первого метода заключается в том, что он извлекает весь PDF-файл в вектор, а каждую страницу — в отдельный элемент. Это облегчает мне работу со строками/переменными. Однако не знаю, как зациклить его, чтобы получить информацию от каждого клиента и соответствующим образом поместить ее в столбец для каждого клиента.
library(pdftools)
library(stringr)
Files <- list.files(path="...", pattern=".pdf")
Files <- Files %% mutate(FR =
str_match(text, "\\$\\d+\\s\\Financial Reporting")) #Extract the first variable
Способ 2:
Преимущество этого подхода заключается в том, что он автоматически создает базу данных для каждого из клиентских документов с именем файла в виде строки и каждым PDF-файлом в переменной. Недостатком является то, что весь PDF-файл в переменной затрудняет сопоставление и извлечение строк по сравнению с тем, чтобы каждая страница находилась в отдельном элементе. Я не знаю, как написать цикл, который будет извлекать переменные для каждого клиента и помещать их в соответствующий столбец.
DF <- readtext("directory pathway/*.pdf")
DF <- DF %>% mutate(FR =
str_match(text, "\\$\\d+\\s\\Financial Reporting"))