r - 如何从 PDF 中干净地提取多页表?
问题描述
我一直在尝试tabulizer
避免硬编码解析,这可能会随着下一份报告而改变。我想知道你们是否有更好的想法。
library(tabulizer)
library(tidyverse)
who <- "https://www.who.int/docs/default-source/coronaviruse/situation-reports/20200309-sitrep-49-covid-19.pdf"
page1 <- tabulizer::extract_tables(who, pages = 4, output = "data.frame") %>%
as.data.frame() %>%
slice(5:n()) %>%
select(-`X.1`)
page2 <- tabulizer::extract_tables(who, pages = 5, output = "data.frame") %>%
as.data.frame() %>%
rbind(colnames(.))
page3 <- tabulizer::extract_tables(who, pages = 6, output = "data.frame") %>%
as.data.frame() %>%
rbind(colnames(.))
colnames(page2) <- colnames(page1)
colnames(page3) <- colnames(page1)
dat <- page1 %>% rbind(page2) %>% rbind(page3)
如果您运行它,您会注意到需要删除区域和总计,但页面拆分和高行是我遇到问题的地方。
解决方案
推荐阅读
- python - Python:迭代包含文件类型和 url 的数据框以下载文件
- java - 以编程方式强制 Firefox 在启动时使用 .pac 文件?
- homomorphism - 在同态加密中隐藏和使用私钥是否可能或安全
- sql - 如何为类似 CSS 的选择器创建数据库结构?
- graphics - 查找二维中两点之间的旋转角度,倒置 y 轴
- nest-device-access - 尝试设置恒温器热量设定点时出现内部错误
- firebase - 如果低于某个值,Firestore 规则允许读取字段
- python - 使用 Google Cloud Scheduler 在 Google Cloud Platform 中启动/停止 Kubernetes 集群
- symfony - 带有 EventSubscriber 的 Symfony 5.2 FileType 导致 Validationerror
- pointers - 如何检查 Box 是否为空指针?