[R-es] Barra de progreso en RODBC

Carlos J. Gil Bellosta cgb en datanalytics.com
Jue Abr 4 16:14:24 CEST 2013


Hola, ¿qué tal?

La única manera en que podrías conseguir lo que quieres es que el
_driver_ de ODBC proporcionara _callbacks_ a R (para indicarle, por
ejemplo, por dónde va en la tarea encomendada). Pero no es el caso.

Una vez que llamas a sqlFetch o sqlSave, R pierde el control de lo que
pasa hasta que el _driver_ decide que ha terminado de hacer lo que se
le ha encomendado.

La única manera de disponer de barras de progreso sería partiendo la
captura e inserción de datos en bloques para actualizarla tú a mano.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com



El día 4 de abril de 2013 10:34,  <jluis.gilsanz en tasacionesh.com> escribió:
> Hola de nuevo a todos:
>
> Soy José Luis, Miguel Ángel ;-)
>
>
> En las tres opciones que me habéis proporcionado tanto tu mismo como Carlos,
> las barras de progreso se aplican a procesos iterativos bien sean bucles o
> bien funciones tipo apply.
>
>
> En mi caso tanto la importación de la Excel como la exportación al MSSQL se
> hacen en una sola instrucción sin utilizar ni bucles ni funciones tipo
> apply.Aunque supongo que internamente RODBC leerá/escribirá los datos de
> forma iterativa en ambas instrucciones la subida/bajada de datos en R se
> hace "del tirón".
>
> Es decir la primera barra de progreso debería mostrar el progreso del numero
> de registros leídos hasta ese momento vs el numero total de registros en la
> instruccion:
> XLS2010 <- sqlFetch(xls, "2010")
>
> La segunda barra de progreso debería mostrar el progreso del numero de
> registros insertados en la tabla SQL  hasta ese momento vs el numero total
> de registros del df datos en la instrucción:
> sqlSave(channel,datos,tablename ="Poblacion", rownames = FALSE, append=TRUE,
> fast=TRUE )
>
> No sé si consigo explicarme con propiedad.
>
> Muchas gracias por los aportes
>
> Un saludo
>
>
>
>
>
>
> Re: [R-es] Barra de progreso en RODBC
>
> (Internet)
> cof
> To: miguel.angel.rodriguez.muinos
> Cc: Jluis GILSANZ, r-help-es
>
> 03/04/2013 17:02
>
>
>
> ________________________________
>
>
>
> Hola,
>
> Hay alguna más...:
>
> http://cran.r-project.org/web/packages/pbapply/pbapply.pdf
>
> Y otra en el paquete plyr:
>
> http://cran.r-project.org/web/packages/plyr/plyr.pdf
>
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> El 3 de abril de 2013 14:33, <miguel.angel.rodriguez.muinos en sergas.es>
> escribió:
> Hola jluis (probablemente, José o Juan Luis).
>
> A ver si esto te sirve...
>
> http://ryouready.wordpress.com/2009/03/16/r-monitor-function-progress-with-a-progress-bar/
>
> Un saludo,
> _____________________________
> Miguel Ángel Rodríguez Muíños
> Dirección Xeral de Innovación e Xestión da Saúde Pública
> Consellería de Sanidade
> Xunta de Galicia
> http://dxsp.sergas.es
>
>
>
>
>
>
> De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org]
> En nombre de jluis.gilsanz en tasacionesh.com
> Enviado el: miércoles, 03 de abril de 2013 13:40
> Para: r-help-es en r-project.org
> Asunto: [R-es] Barra de progreso en RODBC
>
> Hola:
>
> Me encuentro en la tesitura de hacer el siguiente proceso:
> 1-.Leer una excel e importar los datos a R
> 2-.Transformar esos datos mediante R
> 3.-Subir esos datos transformados a MS SQL server.
>
> El proceso en si lo tengo completado sin problemas, pero me gustaria afinar
> un poco mas el codigo y poner una barra de progreso en los pasos 1 y 3.
> En ambos pasos utilizo RODBC para hacer la conexion:
>
> En 1- el codigo seria
> xls   <- odbcConnectExcel("Poblacion.xls")
> XLS2010 <- sqlFetch(xls, "2010")
>
> Pues bien la instruccion sqlFetch tarda unos 3 o 4 minutos en leer la excel
> y me gustaria mostrar una barra de progreso o similar mientras se ejecuta.
>
>
> Tras importar la excel, y luego de varias transformaciones subo el df
> resultante (llamado datos) mediante
> channel <- odbcDriverConnect( "case=nochange; Driver=SQL Server;
> Server=XXXXXXXX; Database=XXXXXXX; uid=XXXXt; pwd=XXXXt; wsid=XXXXXX;")
> sqlSave(channel,datos,tablename ="Poblacion", rownames = FALSE, append=TRUE,
> fast=TRUE )
>
> En este caso tarda aproximadamente una hora en la que R parece "muerto".
> Haciendo una consulta contra la tabla Poblacion (en el analizador de
> consultas de MSSQL) puedo ver en cada momento cuantos registros se han
> insertado hasta ese momento pero me gustaria que R mostrara una indicacion
> del estado de la insercion de datos en el Servidor.
>
> Muchas gracias
>
> ________________________________
> Nota: A información contida nesta mensaxe e os seus posibles documentos
> adxuntos é privada e confidencial e está dirixida únicamente ó seu
> destinatario/a. Se vostede non é o/a destinatario/a orixinal desta mensaxe,
> por favor elimínea. A distribución ou copia desta mensaxe non está
> autorizada.
>
> Nota: La información contenida en este mensaje y sus posibles documentos
> adjuntos es privada y confidencial y está dirigida únicamente a su
> destinatario/a. Si usted no es el/la destinatario/a original de este
> mensaje, por favor elimínelo. La distribución o copia de este mensaje no
> está autorizada.
>
> See more languages: http://www.sergas.es/aviso_confidencialidad.htm
>
>         [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> --
> Saludos,
> Carlos Ortega
> www.qualityexcellence.es
>
>
> -- AVISO LEGAL --
>
> Los datos personales que en esta comunicación aparecen, así como los que
> nuestra
> empresa mantiene de Vd. y de su empresa, son tratados con la finalidad de
> mantener
> el contacto así como realizar las gestiones que en esta aparecen (Ley
> Orgánica
> 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal).
> Puede ejercer sus derechos de acceso, rectificación, cancelación y oposición
> dirigiéndose a atencion.clientes en tasacionesh.com
> La utilización de su dirección de correo electrónico por parte de nuestra
> empresa
> queda sujeta a las disposiciones de la Ley 34/2002, de Servicios de la
> Sociedad de
> la Información y el Comercio Electrónico. Si Vd. recibe comunicación
> comercial por
> nuestra parte y desea dejar de recibirla, rogamos nos lo comunique por vía
> electrónica
> a través de la dirección atencion.clientes en tasacionesh.com
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



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