Я хочу создать полный фрейм данных с PDF-файлом, который содержит 50 страниц. Я смог сгенерировать один фрейм данных только с одной страницы, удалив заголовки, но теперь мне нужно сгенерировать один фрейм данных для всех 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 ```