r - 从多页PDF到DataFrame R
问题描述
我想创建一个包含 50 页的 pdf 的完整数据框。通过删除标题,我能够仅从一页生成一个数据框,但现在我需要为整个 50 页生成一个数据框,而忽略标题。这就是我所拥有的,文件看起来像这样。关于如何实现这一目标的任何帮助或建议?
library(pdftools)
library(sqldf)
sDirectorio = "/Users/muribe/Desktop"
archivoPDF = pdftools::pdf_text(file.path(sDirectorio,"centros_votacion.pdf"))
pagina = 26
unlist( strsplit(archivoPDF[pagina], split = c("\r\n")) )
vLineas
# Cada linea es un vector de caracteres
##class(vLineas[7])
##head(vLineas)
print(vLineas[7])
# Por lo que la labor se convierte en separar correctamente cada columna de datos
# Se define se conforma cada columna de datos
dfDefinicionTabla = data.frame( Orden = 1:9,
Campo = c("Codigo","Provincia","Canton","Distrito","JRVInicial","JRVFinal","TotalJRV","TipoCentro","CentroVotacion"),
Inicio = c(1,8,21,36,75,86,97,104,127),
Fin = c(7,20,35,74,85,96,103,126,180),
Tipo = c("numeric","character","character","character","numeric","numeric","numeric","character","character"),
stringsAsFactors = FALSE)
# Procesa cada una de las lineas de la pagina y los convierte en una fila de datos
dfTabla = data.frame()
for (linea in 7:length(vLineas)) {
dfFila = data.frame(pagina, stringsAsFactors = FALSE)
for (campo in 1:nrow(dfDefinicionTabla)){
# campo = 2
# Extrae cada uno de los campos de la linea
dfFila =cbind(dfFila, trimws(substr( vLineas[linea],
dfDefinicionTabla[campo,]$Inicio,
dfDefinicionTabla[campo,]$Fin),
which = "both")
)
}
# Ajusta los nombres de las columnas
colnames(dfFila)[2:(nrow(dfDefinicionTabla)+1)] = dfDefinicionTabla$Campo
# Consolidando las filas en una sola tabla
dfTabla = rbind(dfTabla, dfFila)
}
dfTabla ```
解决方案
推荐阅读
- php - 价格修改适用于购物车,但不适用于订单
- php - 我的一些查询没有执行
- php - 如何在 word 用户元数据中使用 MySQL 选择查询并从其他表中左连接?
- c# - 具有数据类型前缀的列导致“类型 X 不是已定义的系统类型”错误
- javascript - 已经传递参数时的ReactJS PreventDefault
- python-3.x - Selenium 在不同屏幕中打开浏览器
- javascript - 使用 Jquery 更新 HTML 附加项
- php - mysqli (oop) 在 mysql 服务器上运行但不是 mariadb
- mongodb - 带有数组元素的 MongoDB 数学运算
- java - 更改我的输出 java/Sparql 的类型