使用R从具有相同格式的多页pdf文件中提取特定的结构化数据



嗨,首先感谢您的帮助。我想知道是否有一种方法可以从pdf可编辑文件中提取在所有页面的同一位置分配的特定数据。

该文件(出于隐私考虑进行了修改(包含一系列工资收据,所有页面都包含相同的格式和数据。我只想提取每个员工的SSN(编号IMSS(,并将它们放在数据框架上。我已经搜索了如何做到这一点,但我只发现了数据结构不正确的情况,因为在这个文件中,所有页面都是完全相等的,我想知道是否有一种不那么麻烦的方法。

使用pdf工具和下面的步骤,我能够分离出我想要的数据(分配在第9行(,但只能从单个页面中分离出来。我想知道是否可以输入适用于所有页面的命令。非常感谢。

> library(pdftools)
> test <- pdf_text("pruebas.pdf")
> orden <- strsplit(test,"rn")
> required <- c(unlist(strsplit(orden2[[1]],"rn")))
> nss <- required[9]
> result <- as.data.frame(nss)

这是一个文本解析任务,有几种方法可以实现。也许最快的方法是在每个No. IMSS:分割输出,选择第二个片段,在换行处分割结果,然后取第一个片段。代码不漂亮,但很有效:

sapply(strsplit(sapply(strsplit(pdftools::pdf_text("pruebas.pdf"), 
"No\. IMSS: +"), `[`, 2), "r"), `[`, 1)
#> [1] "12-34-56-7895-5" "12-34-56-7895-9" "12-34-56-7895-7" "12-34-56-7895-1"

最新更新