我想从一堆PDF中提取某些数字信息.下面显示了一个示例,其中数字信息位于相应的标题下.

enter image description here

与上述图像(pdftools::pdf_text()读入)对应的字符串为:

mystr <- '                                      Natural                                                     Dry\n                                     Metric Tons    @         Moisture         or             Metric Tons\n          B.L. WEIGHT:                78,944                   1.70%                          77,601.952\n'

有很多空格和换行符.有可能提取这些标题下的信息吗?

我期望的最终结果是:

myresult <- tibble(
  `Natural Metric Tons` = 78944,
  Moisture = 1.7,
  `Dry Metric Tons` = 77601.952
)

推荐答案

如果你使用pdftools::pdf_data(),你会得到一个TIBLES列表,每页一个,包含文本及其x和y坐标(以及其他数据).垂直对齐的文本将具有相同的y坐标和增加的x坐标.因此,您可以对每个tibble进行如下讨论:

tibble %>%
   group_by(y) %>%
   arrange(x) %>%
   filter(lag(text) == "your search term")

然后可以使用for循环或purr::map()应用于整个列表.

我从你的样本中看到,这些数字是集中的,上面的代码假设是左对齐的条目,所以你可能需要做比组_by(y)更复杂的争论.

很抱歉出现任何格式问题,我在手机上.

R相关问答推荐

将coord_sf与geom_spatraster一起使用会更改分辨率

如何在球体上绘制轮廓线?

逐行替代引用前一行的for循环

了解.groups的目的= dØr的摘要功能中的删除

DT::可数据的正规表达OR运算符问题

如何从其他前面列中减go 特定列的平均值?

是否可以 Select 安装不带文档的R包以更有效地存储?

基于shiny 应用程序中的日期范围子集xts索引

以R中的正确顺序将日期时间字符列转换为posixct

次级y轴R gggplot2

从BRM预测价值

如何通过ggplot2添加短轴和删除长轴?

解析R函数中的变量时出现的问题

如何将Which()函数用于管道%>;%

正则表达式在第二个管道和第二个T之后拆分R中的列

减go R中列表的所有唯一元素对

R代码,用于在线条图下显示观测表

通过初始的shiny 应用更新部署的shiny 应用的数据和参数,其中部署的应用程序显示为URL

循环遍历多个变量,并将每个变量插入函数R

如何在Quarto中使用美人鱼图表中的标记来加粗文本