我想创建一个包含 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 ```