如何将按国家列出的世界部长和内阁成员的PDF格式转换为R中的.csv格式
中央情报局每年多次公布所有国家的世界领导人和内阁部长名单。此信息以PDF格式提供 我想用R将这个PDF转换成CSV,然后分离和整理数据 我正在从“”获取PDF 在页面右中角的“以前年份的PDF版本”链接下 每个PDF都有一些介绍页面,然后列出每个国家的领导人和部长。 每个“标题”和“名称”由不同长度的“……”分隔 我曾尝试使用pdftools包从PDF转换,但我不太确定如何处理排序和整理数据的格式 以下是我下载PDF的第一步如何将按国家列出的世界部长和内阁成员的PDF格式转换为R中的.csv格式,r,pdf,R,Pdf,中央情报局每年多次公布所有国家的世界领导人和内阁部长名单。此信息以PDF格式提供 我想用R将这个PDF转换成CSV,然后分离和整理数据 我正在从“”获取PDF 在页面右中角的“以前年份的PDF版本”链接下 每个PDF都有一些介绍页面,然后列出每个国家的领导人和部长。 每个“标题”和“名称”由不同长度的“……”分隔 我曾尝试使用pdftools包从PDF转换,但我不太确定如何处理排序和整理数据的格式 以下是我下载PDF的第一步 library(pdftools) text <- pdf_
library(pdftools)
text <- pdf_text("Data/April2006ChiefsDirectory.pdf")
test <- as.data.frame(text)
库(pdftools)
text您可以使用tabulizer
进行操作,但如果要导入文档的所有240页,则需要进行一些清理工作。
在这里,我导入第4页,这是第一个关于领导者的信息
library(tabulizer)
mw_table <- extract_tables(
"https://www.cia.gov/library/publications/resources/world-leaders-1/pdfs/2019/January2019ChiefsDirectory.pdf",
output = "data.frame",
pages = 4,
area = list(c(35.68168, 40.88842, 740.97853, 497.74737 )),
guess = FALSE
)
head(mw_table[[1]])
#> X Afghanistan
#> 1 Last Updated: 20 Dec 2017
#> 2 Pres. Ashraf GHANI
#> 3 CEO Abdullah ABDULLAH, Dr.
#> 4 First Vice Pres. Abdul Rashid DOSTAM
#> 5 Second Vice Pres. Sarwar DANESH
#> 6 First Deputy CEO Khyal Mohammad KHAN
库(tabulizer)
mw_表十阿富汗
#>1最后更新日期:2017年12月20日
#>2阿什拉夫·加尼主席
#>3首席执行官阿卜杜拉·阿卜杜拉博士。
#>4第一副主席阿卜杜勒·拉希德·多斯塔姆
#>5第二副总统萨瓦尔·达内什
#>6第一副首席执行官Khyal Mohammad KHAN
您可以使用要导入的页面向量作为页面
中的参数。考虑到你将所有的国家名字埋在第二栏中的人名中。可能您可以通过查找第一列中出现的空“
”找到一种识别国家索引的方法。您可以使用tabulizer
完成此操作,但如果您要导入文档的所有240页,则需要进行一些清理工作。
在这里,我导入第4页,这是第一个关于领导者的信息
library(tabulizer)
mw_table <- extract_tables(
"https://www.cia.gov/library/publications/resources/world-leaders-1/pdfs/2019/January2019ChiefsDirectory.pdf",
output = "data.frame",
pages = 4,
area = list(c(35.68168, 40.88842, 740.97853, 497.74737 )),
guess = FALSE
)
head(mw_table[[1]])
#> X Afghanistan
#> 1 Last Updated: 20 Dec 2017
#> 2 Pres. Ashraf GHANI
#> 3 CEO Abdullah ABDULLAH, Dr.
#> 4 First Vice Pres. Abdul Rashid DOSTAM
#> 5 Second Vice Pres. Sarwar DANESH
#> 6 First Deputy CEO Khyal Mohammad KHAN
库(tabulizer)
mw_表十阿富汗
#>1最后更新日期:2017年12月20日
#>2阿什拉夫·加尼主席
#>3首席执行官阿卜杜拉·阿卜杜拉博士。
#>4第一副主席阿卜杜勒·拉希德·多斯塔姆
#>5第二副总统萨瓦尔·达内什
#>6第一副首席执行官Khyal Mohammad KHAN
您可以使用要导入的页面向量作为页面
中的参数。考虑到你将所有的国家名字埋在第二栏中的人名中。也许你可以通过查找第一列中出现的空的“
来找到一种识别国家索引的方法。该文件作为文本文件非常混乱,有时标题包含两行文本,或者标题和名称之间的分隔不对齐。你会考虑在(Linux)shell Woth<代码> PDFtoTeX<代码>和<代码> AWK < /代码>中的预处理吗?可能,我将对此进行研究。谢谢你的建议。这个文件作为一个文本文件是非常混乱的,有时标题会占用两行文本,或者标题和名称之间的分隔不对齐。你会考虑在(Linux)shell Woth<代码> PDFtoTeX<代码>和<代码> AWK < /代码>中的预处理吗?可能,我将对此进行研究。谢谢你的建议。谢谢,这很有帮助!“区域”命令在这种情况下做什么?您是如何选择它的?关于如何将这些表保存为csv文件,您有什么建议吗?这样我可能可以更好地整理数据。命令是extract\u areas()
,用于以交互方式选择要提取的表区域。在这里检查包的名称,特别是“交互式表提取”部分。要将其保存到csv,您只需使用类似于write.csv(mw_table[[1]],“mydata.csv”)
的东西,这非常有用!“区域”命令在这种情况下做什么?您是如何选择它的?关于如何将这些表保存为csv文件,您有什么建议吗?这样我可能可以更好地整理数据。命令是extract\u areas()
,用于以交互方式选择要提取的表区域。在这里检查包的名称,特别是“交互式表提取”部分。要将其保存到csv,只需使用类似于write.csv(mw_table[[1]],“mydata.csv”)