[R-es] Consulta

Carlos Ortega co| @end|ng |rom qu@||tyexce||ence@e@
Mar Sep 24 17:44:53 CEST 2019


Hola,
En Windows, tienes que instalarte una aplicación que permitirá compilar los
paquetes...

Esta aplicación se llama "RTools" y la puedes conseguir aquí:
https://cran.r-project.org/bin/windows/Rtools/

Instala la versión 34...

Gracias,
Carlos Ortega
www.qualityexcellence.es

El mar., 24 sept. 2019 a las 17:42, BERENICE DOMINGUEZ SANCHEZ (<
ds_bere using hotmail.com>) escribió:

> Emilio
>
> Ahora cuando quiero instalar los paquetes pdftools, magick y otros más me
> salen
> el siguiente error
>
>
> WARNING: Rtools is required to build R packages but is not currently
> installed. Please download and install the appropriate version of Rtools
> before proceeding:
>
> https://cran.rstudio.com/bin/windows/Rtools/
> Installing package into ‘C:/Users/bdominguez/Documents/R/win-library/3.6’
> (as ‘lib’ is unspecified)
> trying URL '
> https://cran.rstudio.com/bin/windows/contrib/3.6/magick_2.2.zip'
> Content type 'application/zip' length 20112845 bytes (19.2 MB)
> downloaded 19.2 MB
>
> package ‘magick’ successfully unpacked and MD5 sums checked
>
> The downloaded binary packages are in
>
> C:\Users\bdominguez\AppData\Local\Temp\RtmpsrfGjz\downloaded_packages
>
>
>
>
> ________________________________
> De: Emilio L. Cano <emilopezcano using gmail.com>
> Enviado: martes, 24 de septiembre de 2019 10:19 a. m.
> Para: BERENICE DOMINGUEZ SANCHEZ <ds_bere using hotmail.com>
> CC: Lista R <r-help-es using r-project.org>
> Asunto: Re: [R-es] Consulta
>
> Hola,
> Estos mensajes de error no son por el paquete pdftools. Las funciones
> image_read_pdf e image_ocr son del paquete magick. ¿Lo tienes instalado?
> ¿Lo tienes cargado? Según el script sí, pero asegúrate de que
> library(magick) no da ningún error.
> La otra función “str_split” es del paquete stringr, pasa lo mismo: tiene
> que estar cargado para poder utilizar sus funciones.
>
> Saludos,
> Emilio
>
> El 24 sept 2019, a las 16:20, BERENICE DOMINGUEZ SANCHEZ <
> ds_bere using hotmail.com<mailto:ds_bere using hotmail.com>> escribió:
>
> Emilio
>
> Buen día, si me manda un error muy especifico que no reconoce una función
> de pdftools
>
> <image.png>
>
> Adjunto el archivo, respecto a la versión fue solo una hipótesis
>
> Hice dos cosas:
>
> Lo volví a instalar pero no tuve éxito, adjunto archivo.
>
> Saludos.
>
>
> ________________________________
> De: Emilio L. Cano <emilopezcano using gmail.com<mailto:emilopezcano using gmail.com>>
> Enviado: lunes, 23 de septiembre de 2019 11:56 p. m.
> Para: BERENICE DOMINGUEZ SANCHEZ <ds_bere using hotmail.com<mailto:
> ds_bere using hotmail.com>>
> CC: Lista R <r-help-es using r-project.org<mailto:r-help-es using r-project.org>>
> Asunto: Re: [R-es] Consulta
>
> Hola Berenice,
>
> ¿Qué quires decir con que no reconoce el paquete? ¿Te da algún mensaje de
> error?
> No sé si has probado a instalar de nuevo el paquete, si no hazlo.
>
> Para poder reproducir el error con tu código haría falta alguno de los
> pdfs que utilizas (puedes compartir un enlace a dropbox o similar).
>
> Un saludo,
> Emilio
>
> > El 24 sept 2019, a las 1:49, BERENICE DOMINGUEZ SANCHEZ <
> ds_bere using hotmail.com<mailto:ds_bere using hotmail.com>> escribió:
> >
> > Buenas tarde a todo using s:
> >
> > Tenia la versión de R 3.6 y utilizaba la paquetería de pdftools para
> extraer información de archivos en pdf actualice la versión 3.6.1 y ya no
> reconoce la paquetería alguien que me pueda ayudar. Prácticamente no
> reconoce las funciones de pdftools
> >
> > library(pdftools)
> > library(stringr)​
> > library(NLP)​
> > library(tm)​
> > library(tesseract)​
> > library(magick)​
> > install.packages("magick")​
> > install.packages("pdftools")​
> > ​
> > txt <- system.file("texts", "txt", package = "tm")​
> > ​
> > rfc_rg <- "([A-Z]{3,})([0-9]{6})([A-Z]|[0-9]){0,3}"​
> > #poliza_rg <-
> "(34|36|37|39)(ME|MEC|CH|MB|TF|GI|VE|TS|IM|ER|VE)*([0-9]{6,})[-]([0-9]){2}[-][A-Z]"​
> > poliza_rg <-
> "(ME|CH|MB|TF|GI|gi|VE|TS|IM|ER|VE)*([0-9]{8,})[-]([0-9]){2}"​
> > registro_rg <- "(CNSF-H0711-)([0-9]{4})[- ]([0-9]){4}"​
> > subgrupo_rg <- "_([0-9]){1,3}."​
> > mon_rg <- "SMGM|UMAM|MN"​
> > ​
> > ​
> > ruta <- 'C:/Users/bdominguez/Documents/H0711/Bond/1909/'​
> > archivos<-list.files(path=ruta,pattern = '*.pdf')​
> > ​
> > ​
> > imagen <- image_read_pdf(path=paste(ruta,"/",nombre,".pdf",sep=""))​
> > prueba <-image_ocr(imagen, language = 'eng')​
> > lineas<-unlist(str_split(prueba,pattern = "\n"))​
> > lineasp<-unlist(str_split(prueba[2],pattern = "\r\n"))​
> > ​
> > newnom <- NULL​
> > renglones <- NULL​
> > for (nombre in archivos){​
> >  subgrupo <- str_extract(str_extract(nombre,pattern =
> subgrupo_rg),pattern = "[0-9]{1,3}")​
> >  imagen <- image_read_pdf(path=paste(ruta,"/",nombre,".pdf",sep=""))​
> >  prueba <-image_ocr(imagen, language = 'eng')​
> >  lineas<-unlist(str_split(prueba,pattern = "\n"))​
> >  poliza <- NULL​
> >  poliza<-str_extract(lineas[1],poliza_rg)​
> >  newnom <- c(newnom,paste(poliza[1],substr(nombre,5,6),".pdf",sep=''))​
> >  ​
> >  registro <- NULL​
> >  registro<-str_extract(lineas[49],registro_rg)​
> >  ​
> >  rfc <- NULL​
> >  rfc <- str_extract(lineas[5],rfc_rg)​
> >  ​
> >  ​
> >  #lineasnew<-unlist(str_split(lineas[2],pattern = "\r\n"))​
> >  #lineasdosnew<-unlist(str_split(lineas[1],pattern = "\r\n"))​
> >  ​
> >  cobertura <- NA​
> >  extranjera <- NA​
> >  suma_str   <- NA​
> >  deducible_str <- NA​
> >  ​
> >  suma <- NA​
> >  coaseguro <- NA​
> >  deducible <- NA​
> >  tope <- NA​
> >  mon <- NA​
> >  mondedu <- NA​
> >  ​
> >  cobertura  <- grep("Cobertura en el Extranjero",lineas,value=TRUE)​
> >  extranjera <- grep("Emergencia en el Extranjero",lineas,value=TRUE)​
> >  suma_str   <- grep("SUMA ASEGURADA:",lineas,value=TRUE)​
> >  deducible_str   <- grep("DEDUCIBLE:",lineas,value=TRUE)​
> >  sumacob <- NA​
> >  sumaext <- NA​
> >  ​
> >  pprimaria <- grep("Numero de Póliza:", lineas, value = TRUE)​
> >  dnprimariaa <- grep("Nombre de la Aseguradora Primaria:", lineas, value
> = TRUE)​
> >  ​
> >  #cer<- grep("Certificado No. ",lineas, value=TRUE)​
> >  #ntit<- grep("Ramo", lineas, value=TRUE)​
> >  ​
> >  sumacob<-as.numeric(str_extract(cobertura[1],pattern = "[0-9]{1,}"))​
> >  if (length(sumacob)==0){​
> >    sumacob = NA​
> >  }​
> >  ​
> >  sumaext<-as.numeric(str_extract(extranjera[17],pattern = "[0-9]{1,}"))​
> >  if (length(sumaext)==0){​
> >    sumaext = NA​
> >  }​
> >  valores <- NULL​
> >  monedas <- NULL​
> >  valores <- str_extract_all(suma_str[17],pattern =
> "[0-9]{0,3},*[0-9]{0,3},*[0-9]{1,3}(.[0-9]{1,}){0,1}",simplify=TRUE)​
> >  monedas <- str_extract(suma_str,pattern = mon_rg)​
> >  if (length(valores[1])==0){​
> >    suma = NA​
> >    mon = NA​
> >  }else{​
> >    suma = as.numeric(gsub(pattern = ",*",replacement = "",valores[1]))​
> >    mon <- as.character(monedas[1])​
> >  }​
> >  ​
> >  if (length(valores[2])==0){​
> >    coaseguro = NA​
> >  }else{​
> >    coaseguro = as.numeric(valores[2])​
> >  }​
> >  valores <- NULL​
> >  valores <- str_extract_all(deducible_str[1],pattern =
> "[0-9]{0,3},*[0-9]{0,3},*[0-9]{1,3}(.[0-9]{1,}){0,1}",simplify=TRUE)​
> >  ​
> >  if (length(valores[1])==0){​
> >    deducible <- NA​
> >  }else{​
> >    deducible <- as.numeric(gsub(pattern = ",",replacement =
> "",valores[1]))​
> >  }​
> >  ​
> >  monedas <- NULL  ​
> >  monedas <- str_extract(deducible_str[1],pattern = mon_rg)​
> >  ​
> >  if (length(monedas)==0){​
> >    mondedu <- NA​
> >  }else{​
> >    mondedu <- monedas​
> >  }​
> >  ​
> >  ​
> >  if (length(valores[2])==0){​
> >    tope = NA​
> >  }else{​
> >    tope = as.numeric(gsub(pattern = ",",replacement = "",valores[2]))​
> >  }​
> >  ​
> >  renglon <-
> data.frame(archivo=nombre,poliza=as.character(poliza[1]),cobertura=sumacob,emergencia=sumaext,registro=registro[1],suma=suma,coaseguro=coaseguro,deducible=deducible,tope=tope,rfc=rfc,mon=mon,mondedu=mondedu,subgrupo=subgrupo,
> cert=as.character(cer[1]), cer_tit=as.character(lineasdos[14]),
> titu=as.character(lineasdos[10]))​
> >  renglones <- rbind(renglones,renglon)​
> > }​
> > ​
> > # Con los datos del data frame renombra los archivos hay que crear los
> subdirectorios​
> > ​
> > noms <- data.frame(archivo=archivos,poliza=newnom)​
> > ​
> > noms <- renglones[!is.na(renglones$poliza),c('archivo','cer_tit')]​
> > ungrupo<-sqldf("select poliza,count(cert) from noms group by 1  having
> count(cert) <= 1 ")​
> > noms<-sqldf("select * from noms where poliza in (select poliza from
> ungrupo)")​
> > length(noms$archivo)​
> > salida <- "/renombra/"​
> > ​
> > for (i in 1:length(noms[,1])){​
> >  if (!is.na(noms[i,'cer_tit'])){​
> >    pfrom <- paste(ruta,"/",noms[i,'archivo'],sep='')​
> >    pto <- paste(ruta,salida,noms[i,'cer_tit'],'.pdf',sep='')​
> >    if (!file.exists(pto)){​
> >      file.copy(from = pfrom,to=pto)​
> >    }​
> >  }​
> > }​
> > ​
> > #Ahora las polizas con subgrupos​
> > noms <- renglones[!is.na
> (renglones$poliza),c('archivo','poliza','subgrupo')]​
> > ungrupo<-sqldf("select poliza,count(subgrupo) from noms group by 1
> having count(subgrupo) > 1 ")​
> > noms<-sqldf("select * from noms where poliza in (select poliza from
> ungrupo) order by poliza")​
> > length(noms$archivo)​
> > salida <- "/Renombra/ConGrupos/"​
> > ​
> > for (i in 1:length(noms[,1])){​
> >  if (!is.na(noms[i,'poliza'])){​
> >    pfrom <- paste(ruta,"/",noms[i,'archivo'],sep='')​
> >    pto <-
> paste(ruta,salida,noms[i,'poliza'],'_',noms[i,'subgrupo'],'.pdf',sep='')​
> >    if (!file.exists(pto)){​
> >      file.copy(from = pfrom,to=pto)​
> >    }​
> >  }​
> > }​
> > ​
> > salida <- "/Renombra/Grupos/"​
> > dirActual <- getwd()​
> > polizas_con_grupos <- as.character(sqldf("select poliza from
> ungrupo")$poliza)​
> > setwd(ruta)​
> > for (policita in polizas_con_grupos){​
> >  archivos <- as.character(sqldf(paste("select archivo from renglones
> where poliza like '%",policita,"%'",sep=''))$archivo)​
> >  staple_pdf(input_files = archivos,output_filepath =
> paste(ruta,salida,policita,".pdf",sep='')) ​
> > }​
> > setwd(dirActual)​
> > ​
> > #Ahora los PDf sin poliza​
> > noms <- renglones[is.na(renglones$poliza),c('archivo','poliza')]​
> > salida <- "/renombra/SinPoliza/"​
> > for (i in 1:length(noms[,1])){​
> >  pfrom <- paste(ruta,"/",noms[i,'archivo'],sep='')​
> >  pto <- paste(ruta,salida,noms[i,'archivo'],sep='')​
> >  if (!file.exists(pto)){​
> >    file.copy(from = pfrom,to=pto)​
> >  }​
> > }​
> > ​
> > View(renglones)​
> > write.csv(renglones, file='//
> 192.168.1.83/share/CERT/CERTIFICADOS_INDIVIDUALES_295_UMAM/Renombra/CERTIFICADOS_INDIVIDUALES_295_UMAM.csv')
>> > ​
> > ​
> > ​
> >
> >
> >        [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es using r-project.org<mailto:R-help-es using r-project.org>
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> <caratula_34008612-01-B_6370_20_09_2019_141619.pdf>
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es