Hola José Luis.

Se me ocurre una cosa que puede valerte (aunque no es demasiado "fino")....
Puedes crear una ventana en la que pintes una barra animada (e, incluso un contador y/o cronómetro)... la activas justo antes de lanzar la petición y la desactivas cuando se devuelva el control a R.
Así el usuario verá algo en pantalla mientras espera y no tendrá esa sensación de que el proceso "se colgó".

Eso te valdría?

NOTA: En tu proceso de una hora, podrías ponerles mejor unos videos musicales!
:)

Un saludo,
Miguel.





De: r-help-es-bounces@r-project.org [mailto:r-help-es-bounces@r-project.org] En nombre de jluis.gilsanz@tasacionesh.com
Enviado el: viernes, 05 de abril de 2013 11:16
Para: cgb@datanalytics.com
CC: r-help-es@r-project.org; gilbellosta@gmail.com
Asunto: Re: [R-es] Barra de progreso en RODBC
Importancia: Alta

Hola de nuevo:

Ahora creo que he conseguido explicarme bien, esos callbacks de RODBC a R era justo lo que necesitaba para mostrar el progreso.
Pero como RODBC no los tiene, mi gozo en un pozo :-(

La opción de partir los datos en varios lotes ya la había sopesado pero teniendo en cuenta que esto era una especie de refinamiento del código no me merece la pena.
Seguiré ejecutando la query directamente en el MSSQL para saber cuantos registros han subido como hacia hasta ahora.


Muchas gracias por vuestra ayuda.

Un saludete





Re: [R-es] Barra de progreso en RODBC


(Internet)
cgb

To:

Jluis GILSANZ

Cc:

r-help-es


04/04/2013 16:14


Sent by : gilbellosta@gmail.com<mailto:gilbellosta@gmail.com>



________________________________



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<http://www.datanalytics.com/>



El día 4 de abril de 2013 10:34,  <jluis.gilsanz@tasacionesh.com<mailto:jluis.gilsanz@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@sergas.es<mailto:miguel.angel.rodriguez.muinos@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<http://dxsp.sergas.es/>
>
>
>
>
>
>
> De: r-help-es-bounces@r-project.org<mailto:r-help-es-bounces@r-project.org> [mailto:r-help-es-bounces@r-project.org]
> En nombre de jluis.gilsanz@tasacionesh.com<mailto:jluis.gilsanz@tasacionesh.com>
> Enviado el: miércoles, 03 de abril de 2013 13:40
> Para: r-help-es@r-project.org<mailto:r-help-es@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@r-project.org<mailto:R-help-es@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@tasacionesh.com<mailto:atencion.clientes@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@tasacionesh.com<mailto:atencion.clientes@tasacionesh.com>
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org<mailto:R-help-es@r-project.org>
> https://stat.ethz.ch/mailman/listinfo/r-help-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@tasacionesh.com<mailto:atencion.clientes@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@tasacionesh.com<mailto:atencion.clientes@tasacionesh.com>

________________________________
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]]

