用R识别PDF表格
我试图从一些pdf报告中的表中提取数据 我见过一些使用pdftools和类似软件包的例子,我成功地获得了文本,但是,我只想提取表用R识别PDF表格,r,text-mining,pdf-scraping,R,Text Mining,Pdf Scraping,我试图从一些pdf报告中的表中提取数据 我见过一些使用pdftools和类似软件包的例子,我成功地获得了文本,但是,我只想提取表 有没有一种方法可以使用R只识别和提取表格?我也想知道这个问题的答案。但根据我的经验,您需要使用正则表达式以您想要的格式获取数据。您可以看到以下示例: library(pdftools) dat <- pdftools::pdf_text("https://s3-eu-central-1.amazonaws.com/de-hrzg-khl/kh-ffe/publi
有没有一种方法可以使用R只识别和提取表格?我也想知道这个问题的答案。但根据我的经验,您需要使用正则表达式以您想要的格式获取数据。您可以看到以下示例:
library(pdftools)
dat <- pdftools::pdf_text("https://s3-eu-central-1.amazonaws.com/de-hrzg-khl/kh-ffe/public/artikel-pdfs/Free_PDF/BF_LISTE_20016.pdf")
dat <- paste0(dat, collapse = " ")
pattern <- "Berufsfeuerwehr\\s+Straße(.)*02366.39258"
extract <- regmatches(dat, regexpr(pattern, dat))
extract <- gsub('\n', " ", extract)
strsplit(extract, "\\s{2,}")
库(pdftools)
有个问题,我最近也在想同样的事情,谢谢
正如@hrbrmstr所建议的那样,我使用了tabulizer'0.2.2'
。如果您使用的是R>3.5.x,我将提供以下解决方案。按特定顺序安装三个软件包:
# install.packages("rJava")
# library(rJava) # load and attach 'rJava' now
# install.packages("devtools")
# devtools::install_github("ropensci/tabulizer", args="--no-multiarch")
更新:在再次测试该方法之后,看起来现在只需安装install.packages(“tabulizer”)
就足够了<代码>rJava
将作为依赖项自动安装
现在,您可以从PDF报告中提取表了
library(tabulizer)
## load report
l <- "https://sedl.org/afterschool/toolkits/science/pdf/ast_sci_data_tables_sample.pdf"
m <- extract_tables(l, encoding="UTF-8")[[2]] ## comes as a character matrix
## Note: peep into `?extract_tables` for further specs (page, location etc.)!
## use first row as column names
dat <- setnames(type.convert(as.data.frame(m[-1, ]), as.is=TRUE), m[1, ])
## example-specific date conversion
dat$Date <- as.POSIXlt(dat$Date, format="%m/%d/%y")
dat <- within(dat, Date$year <- ifelse(Date$year > 120, Date$year - 100, Date$year))
dat ## voilà
# Speed (mph) Driver Car Engine Date
# 1 407.447 Craig Breedlove Spirit of America GE J47 1963-08-05
# 2 413.199 Tom Green Wingfoot Express WE J46 1964-10-02
# 3 434.220 Art Arfons Green Monster GE J79 1964-10-05
# 4 468.719 Craig Breedlove Spirit of America GE J79 1964-10-13
# 5 526.277 Craig Breedlove Spirit of America GE J79 1965-10-15
# 6 536.712 Art Arfons Green Monster GE J79 1965-10-27
# 7 555.127 Craig Breedlove Spirit of America, Sonic 1 GE J79 1965-11-02
# 8 576.553 Art Arfons Green Monster GE J79 1965-11-07
# 9 600.601 Craig Breedlove Spirit of America, Sonic 1 GE J79 1965-11-15
# 10 622.407 Gary Gabelich Blue Flame Rocket 1970-10-23
# 11 633.468 Richard Noble Thrust 2 RR RG 146 1983-10-04
# 12 763.035 Andy Green Thrust SSC RR Spey 1997-10-15
库(tabulizer)
##负载报告
l Packagepdftables
:tabulizer(ropensci github)tabulizer安装起来非常困难。我从未在Mac上使用过它。@jaySf-我面临的问题是tabulizer()
正在读取所有表格,但只读取表格的标题,而不读取表格的内容。有什么建议可以解决这个问题吗?@ChetanArvindPatil很难给出任何例子。我认为制表器工作与否取决于创建pdf的软件。我发现这很有用,但仍然不能完全工作。。。给出了对我有用的替代步骤。(Win10)