Hola, me sorprende leer tu opinión ("R (puro) no es la herramienta ideal para el manejo directo del 'big data'") cuando precisamente este pasado mes de abril SparkR (ver descripción de su web más abajo) se ha integrado en Apache Spark y todo el mundo que está en "ese ajo" del "big data" (buzzword donde las haya) no le quita ojo a la publicación oficial este verano. https://amplab-extras.github.io/SparkR-pkg/ SparkR is an R package that provides a light-weight frontend to use Apache Spark from R. SparkR exposes the Spark API through the RDD class and allows users to interactively run jobs from the R shell on a cluster. NOTE: As of April 2015, SparkR has been officially merged into Apache Spark and is shipping in an upcoming release (1.4) due early summer 2015. (lo poquísimo que sé de SparkR es que ya quien se tiene que pegar con map-reduce no usa otra cosa; sobre todo junto con python). Salud Pedro El 06/05/2015 a las 15:49, r-help-es-request en r-project.org<mailto:r-help-es-request en r-project.org> escribió: Envíe los mensajes para la lista R-help-es a r-help-es en r-project.org<mailto:r-help-es en r-project.org> Para subscribirse o anular su subscripción a través de la WEB https://stat.ethz.ch/mailman/listinfo/r-help-es O por correo electrónico, enviando un mensaje con el texto "help" en el asunto (subject) o en el cuerpo a: r-help-es-request en r-project.org<mailto:r-help-es-request en r-project.org> Puede contactar con el responsable de la lista escribiendo a: r-help-es-owner en r-project.org<mailto:r-help-es-owner en r-project.org> Si responde a algún contenido de este mensaje, por favor, edite la linea del asunto (subject) para que el texto sea mas especifico que: "Re: Contents of R-help-es digest...". Además, por favor, incluya en la respuesta sólo aquellas partes del mensaje a las que está respondiendo. Asuntos del día: 1. Re: Muestreo de bases de datos (Freddy Omar López Quintero) ---------------------------------------------------------------------- Message: 1 Date: Wed, 6 May 2015 10:48:49 -0300 From: Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> To: Patricio Fuenmayor Viteri <patricio.fuenmayor en outlook.com><mailto:patricio.fuenmayor en outlook.com>, fernando.fernandez.gonzalez en gmail.com<mailto:fernando.fernandez.gonzalez en gmail.com>, jluis.gilsanz en tasacionesh.com<mailto:jluis.gilsanz en tasacionesh.com>, Javier Marcuzzi <javier.ruben.marcuzzi en gmail.com><mailto:javier.ruben.marcuzzi en gmail.com>, Carlos Javier Gil Bellosta <cgb en datanalytics.com><mailto:cgb en datanalytics.com> Cc: r-help-es <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: Re: [R-es] Muestreo de bases de datos Message-ID: <CALCOUqv1XP20U465rP6sHR0++9HsT2dETmGB-jRkWkFUU852Aw en mail.gmail.com><mailto:CALCOUqv1XP20U465rP6sHR0++9HsT2dETmGB-jRkWkFUU852Aw en mail.gmail.com> Content-Type: text/plain; charset="UTF-8" Gracias a todos por sus respuestas. Han enriquecido mi punto de vista. Cuando deba, entonces garantizaré la representatividad de los individuos ocupando los índices o hashes en la base de datos (el problema se traslada ahora a hallar esa representatividad). Personalmente pienso que R (puro) no es la herramienta ideal para el manejo directo del 'big data' aunque algunos cuenten con los ordenadores con capacidades que les permitan hacerlo directamente. De todas formas, ya las ofertas de R integrado en base de datos están a la orden del día (esta es la última que supe: http://www.oracle.com/technetwork/database/database-technologies/r/r-distribution/overview/index.html ). Saludos a todos. 2015-05-05 13:11 GMT-03:00 Patricio Fuenmayor Viteri < patricio.fuenmayor en outlook.com<mailto:patricio.fuenmayor en outlook.com>>: Bueno ... voy a compartirles mi experiencia en esto. Freddy, yo tuve la misma experiencia que su amigo, es mas, aun la sigo teniendo... y en resumen y sin alargar el cuento ... me quedo con R. Porque mi decisión... por varios temas: 1. Rapidez. Uno debe saber que es lo que se quiere hacer y que necesita para eso. El uso adecuado de indices, hash, etc. que permitan y faciliten al sistema trabajar eficientemente. R en mas rápido que SAS en temas de cruces de datos (yo uso data.table e indexaciones por hash). 2. Generalizado, centralizado y normalizado. El uso del concepto de funciones con parámetros, y un solo esquema de lenguaje y la programación orientada a objetos, hace que se faciliten los temas. Programar los procesos usando un flujo y reutilizando las funciones, permiten que a mas de que el proceso sea escalable, su mantenimiento y la incorporación de nuevas funcionalidades, se implemente fácilmente. 3. SAS facilita la conexión con diferentes bases de datos (siempre y cuando se tenga licenciado el módulo). Es recomendable usar librerías en R que estén programadas utilizando conectores nativos, tales como RMySQL, RPostgres, y la nueva que estoy usando rsqlserver (en desarrollo en github), las cuales son muy rápidas en tiempos de respuesta. 4. Programación modular e incorporación de conceptos y tecnologías. Esto, en mi caso, lo desarrollé por experiencia. Poder generalizar un proceso de información, manejar un modelos de datos, para optimizar el almacenaje de los datos y de los resultados, hacen que los tiempo de respuesta hacia el usuario sean cada vez mejores. 5. Toda la gama de funciones desarrolladas por la comunidad, y los estudios y análisis compartidos en blogs, libros, etc. permiten que la curva de aprendizaje y de desarrollo sea mas corta, ademas uno puede evidenciar y aprender de gente mas experimentada en temas de manejo de información y de aplicaciones estadísticas. Bueno... esto es parte de mi experiencia... y no quiero cansarles mas ... un abrazo ... !!! --Archivo adjunto de mensaje reenviado-- From: jluis.gilsanz en tasacionesh.com<mailto:jluis.gilsanz en tasacionesh.com> To: r-help-es en r-project.org<mailto:r-help-es en r-project.org> Date: Tue, 5 May 2015 11:12:49 +0000 Subject: Re: [R-es] Muestreo de bases de datos Hola Desviándome un poco de la cuestión que plantea Freddy, no estoy muy de acuerdo con lo que comenta acerca de que "... R no está diseñado (operaciones en la base de datos)..". Precisamente la mayor parte de mi trabajo en R se realiza vinculadolo a un servidor Microsoft SQL Server y lo cierto es que, hasta ahora, "se entienden" muy bien entre ellos. Cierto es que, en mi caso, la mayor parte del flujo de datos (con millones de registros como norma general) va de R hacia el SQL, puesto que utilizo R para descargar los datos, organizarlos y depurarlos antes de subirlos al SQL server. Al principio me inquietaba mucho el tiempo (horas en algún caso) en el que la consola de R se mostraba "pensando" hasta que se subían todos los datos al SQL Server, así que diseñe una función que usando el paquete snowfall mostraba una barra de progreso mientras se hacia la subida de datos. Para el flujo de datos en sentido inverso, (de SQL Server a R) siempre me aseguro de que la consulta SQL que "baja" los datos del SQL Server a un dataframe o similar solo recupera los datos verdaderamente necesarios. Lógicamente y dependiendo de lo que vayas a hacer luego con esos datos a veces esto no es posible, pero en general eso de "bajarse todo" e intentar ejecutar un proceso me parece un hábito bastante pernicioso e improductivo. -----Mensaje original----- De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de r- help-es-request en r-project.org<mailto:help-es-request en r-project.org> Enviado el: martes, 05 de mayo de 2015 12:00 Para: r-help-es en r-project.org<mailto:r-help-es en r-project.org> Asunto: Resumen de R-help-es, Vol 75, Envío 4 Envíe los mensajes para la lista R-help-es a r-help-es en r-project.org<mailto:r-help-es en r-project.org> Para subscribirse o anular su subscripción a través de la WEB https://stat.ethz.ch/mailman/listinfo/r-help-es O por correo electrónico, enviando un mensaje con el texto "help" en el asunto (subject) o en el cuerpo a: r-help-es-request en r-project.org<mailto:r-help-es-request en r-project.org> Puede contactar con el responsable de la lista escribiendo a: r-help-es-owner en r-project.org<mailto:r-help-es-owner en r-project.org> Si responde a algún contenido de este mensaje, por favor, edite la linea del asunto (subject) para que el texto sea mas especifico que: "Re: Contents of R-help-es digest...". Además, por favor, incluya en la respuesta sólo aquellas partes del mensaje a las que está respondiendo. Asuntos del día: 1. Muestreo de bases de datos.- (Freddy Omar López Quintero) 2. Re: Muestreo de bases de datos.- (Carlos J. Gil Bellosta ) 3. Re: Muestreo de bases de datos.- (javier.ruben.marcuzzi en gmail.com<mailto:javier.ruben.marcuzzi en gmail.com>) ---------------------------------------------------------------------- Message: 1 Date: Mon, 4 May 2015 15:15:33 -0300 From: Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> To: "r-help-es en r-project.org"<mailto:r-help-es en r-project.org> <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: [R-es] Muestreo de bases de datos.- Message-ID: <CALCOUqu7nKupKdc47Q2ixvsfGVqAdOhgdLmNMfc8JvTS7hqX+Q@ mail.gmail.com><mailto:CALCOUqu7nKupKdc47Q2ixvsfGVqAdOhgdLmNMfc8JvTS7hqX+Q en mail.gmail.com> Content-Type: text/plain; charset="UTF-8" ¡Hola! Mi duda surge por la siguiente anécdota: un amigo (empleado de una enorme consultora que tiene SAS) migró a R y ansioso me contó que iba a ejecutar las rutinas que había traducido de SAS a R y luego de intentar ejecutarlas nada le funcionó porque, ingenuamente, quería hacer cosas para las cuales R no está diseñado (operaciones en la base de datos) y porque leyó TODOS los datos de una consulta (millones de registros) e intentó correr algún procedimiento (!). Me dijo que SAS corre todo lo que él necesita y pues quedó tristemente decepcionado. Yo le dije que es corriente tomar una muestra de los datos para calibrar los modelos que se van a necesitar y que no es necesario utilizar los millones de registros enteros. Esto me hizo pensar ¿existen normas o buenas prácticas para el muestreo de las bases de datos?¿existen normativas?¿lineamientos? Es claro que mi primera respuesta sería ocupar los métodos ya desarrollados para encuestas, pero quién sabe. Si existen: ¿tienen su contraparte en R? Gracias y disculpen las molestias. ¡Salud! -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]] ------------------------------ Message: 2 Date: Mon, 4 May 2015 20:35:28 +0200 From: "Carlos J. Gil Bellosta " <cgb en datanalytics.com><mailto:cgb en datanalytics.com> To: Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> Cc: "r-help-es en r-project.org"<mailto:r-help-es en r-project.org> <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: Re: [R-es] Muestreo de bases de datos.- Message-ID: <CADg83efiwWEdwA6dyR4RUkwB5Qc5evOAmdLfBeg+yO0GngL0Aw @mail.gmail.com> Content-Type: text/plain; charset=UTF-8 Hola, ¿qué tal? La mejor manera de muestrear una tabla en una base de datos es a través del módulo de algún valor (típicamente autonumérico), como los ids. Si no, a través del módulo de un hash de algún identificador similar. Este procedimiento tiene la ventaja de ser repetible: consultas sucesivas pueden muestrear la misma subpoblación u otra de tamaño similar completamente distinta de la anterior. El filtro se hace en el where de la consulta a la base de datos (y la sintaxis cambia de una a otra). Si los datos son grandes y están en una base de datos, es mejor manipularlos dentro de ella previamente enviando consultas SQL desde R y solo descargar los datos (debidamente filtrados y muestreados, es decir, pequeños y/o manejables) al final. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 4 de mayo de 2015, 20:15, Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> escribió: ¡Hola! Mi duda surge por la siguiente anécdota: un amigo (empleado de una enorme consultora que tiene SAS) migró a R y ansioso me contó que iba a ejecutar las rutinas que había traducido de SAS a R y luego de intentar ejecutarlas nada le funcionó porque, ingenuamente, quería hacer cosas para las cuales R no está diseñado (operaciones en la base de datos) y porque leyó TODOS los datos de una consulta (millones de registros) e intentó correr algún procedimiento (!). Me dijo que SAS corre todo lo que él necesita y pues quedó tristemente decepcionado. Yo le dije que es corriente tomar una muestra de los datos para calibrar los modelos que se van a necesitar y que no es necesario utilizar los millones de registros enteros. Esto me hizo pensar ¿existen normas o buenas prácticas para el muestreo de las bases de datos?¿existen normativas?¿lineamientos? Es claro que mi primera respuesta sería ocupar los métodos ya desarrollados para encuestas, pero quién sabe. Si existen: ¿tienen su contraparte en R? Gracias y disculpen las molestias. ¡Salud! -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es ------------------------------ Message: 3 Date: Mon, 4 May 2015 19:32:14 +0000 From: <javier.ruben.marcuzzi en gmail.com><mailto:javier.ruben.marcuzzi en gmail.com> To: "=?utf-8?Q?Carlos_J._Gil_Bellosta?=" <cgb en datanalytics.com><mailto:cgb en datanalytics.com>, Freddy López <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> Cc: "=?utf-8?Q?R-help-es en r-project.org?="<mailto:=?utf-8?Q?R-help-es en r-project.org?=> <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: Re: [R-es] Muestreo de bases de datos.- Message-ID: <5547cad4.48958c0a.7228.2102 en mx.google.com><mailto:5547cad4.48958c0a.7228.2102 en mx.google.com> Content-Type: text/plain; charset="UTF-8" Estimado Freddy López Yo estoy de acuerdo con Carlos Gil Bellosta, no se si es apropiado para millones del registros como los que usted comenta, pero R tiene sqldf, que básicamente usa sqlite, esto posibilita usar una base de datos dentro de R sin tener que preocuparnos demasiado, otra forma es utilizar data.table en lugar de data.frame, dplyr, posiblemente su amigo no migro correctamente de SAS a R (aunque tome con cuidado esto último, yo nunca use SAS). Javier Rubén Marcuzzi De: Carlos J. Gil Bellosta Enviado el: ?lunes?, ?04? de ?mayo? de ?2015 ?03?:?35? ?p.m. Para: Freddy López CC: R-help-es en r-project.org<mailto:R-help-es en r-project.org> Hola, ¿qué tal? La mejor manera de muestrear una tabla en una base de datos es a través del módulo de algún valor (típicamente autonumérico), como los ids. Si no, a través del módulo de un hash de algún identificador similar. Este procedimiento tiene la ventaja de ser repetible: consultas sucesivas pueden muestrear la misma subpoblación u otra de tamaño similar completamente distinta de la anterior. El filtro se hace en el where de la consulta a la base de datos (y la sintaxis cambia de una a otra). Si los datos son grandes y están en una base de datos, es mejor manipularlos dentro de ella previamente enviando consultas SQL desde R y solo descargar los datos (debidamente filtrados y muestreados, es decir, pequeños y/o manejables) al final. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 4 de mayo de 2015, 20:15, Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> escribió: ¡Hola! Mi duda surge por la siguiente anécdota: un amigo (empleado de una enorme consultora que tiene SAS) migró a R y ansioso me contó que iba a ejecutar las rutinas que había traducido de SAS a R y luego de intentar ejecutarlas nada le funcionó porque, ingenuamente, quería hacer cosas para las cuales R no está diseñado (operaciones en la base de datos) y porque leyó TODOS los datos de una consulta (millones de registros) e intentó correr algún procedimiento (!). Me dijo que SAS corre todo lo que él necesita y pues quedó tristemente decepcionado. Yo le dije que es corriente tomar una muestra de los datos para calibrar los modelos que se van a necesitar y que no es necesario utilizar los millones de registros enteros. Esto me hizo pensar ¿existen normas o buenas prácticas para el muestreo de las bases de datos?¿existen normativas?¿lineamientos? Es claro que mi primera respuesta sería ocupar los métodos ya desarrollados para encuestas, pero quién sabe. Si existen: ¿tienen su contraparte en R? Gracias y disculpen las molestias. ¡Salud! -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]] ------------------------------ Subject: Pié de página del digest _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es ------------------------------ Fin de Resumen de R-help-es, Vol 75, Envío 4 ******************************************** Jones Lang LaSalle Arquitectura, SLU Registration number: B-61888715 Registered Office: Pº de la Castellana, 51 - 5ª ; 28046 Madrid This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future then please respond to the sender to this effect. --Archivo adjunto de mensaje reenviado-- From: fernando.fernandez.gonzalez en gmail.com<mailto:fernando.fernandez.gonzalez en gmail.com> CC: r-help-es en r-project.org<mailto:r-help-es en r-project.org> To: jluis.gilsanz en tasacionesh.com<mailto:jluis.gilsanz en tasacionesh.com> Date: Tue, 5 May 2015 15:35:14 +0200 Subject: Re: [R-es] Muestreo de bases de datos Hola, Para mí el principal error de la anécdota es intentar hacer una "traducción literal" de lo que se tiene programado en SAS porque no se tiene ni idea de cómo funciona R. Muchas veces en SAS se hacen determinadas cosas simplemente "porque se puede" sin pensar en si realmente son necesarias o son una buena práctica, como por ejemplo, lanzar una regresión logística para un conjunto de 5 millones de registros con 3 variables. Lo hago porque el comercial de SAS de turno me dijo que se podía y que era mucho mejor, y era algo que otros programas no podían hacer, y vende muy bien decirlo... Creo que cuando se trabaja con R hay que cambiar un poco el chip, y por mucho que nos guste, asumir que tiene ciertas limitaciones a la hora de procesar datos y que no pasa nada por combinarla con otras herramientas. Cuando se mencionaba que "R no sirve para trabajar en la base de datos" creo se refiere a hacer el procesamiento de los datos dentro de R, y que esta confusión viene de que mucha gente utiliza "base de datos" como sinónimo de "conjunto de datos". Como apuntan algunos, R se lleva bastante bien con muchas bases de datos, y creo que es una muy buena práctica delegar en la medida de lo posible el procesamiento a una bbdd. Si no existe, pues la creas, es gratis. Yo he trabajado en varios proyectos montando una mysql y R con mucho éxito. Toda la manipulación de datos que puedo la delego en mysql, y el rendimiento es MUY bueno si tienes espacio en disco suficiente para crear algunos índices. Utilizo R para generar las consultas un poco al estilo de cómo funcionan las macros de SAS. Como grandes ventajas, es un código que es muy fácil portar a otros sistemas (includo SAS, via proc sql). La mayoría de los modelos que generaras pueden traducirse en fórmulas que se pueden implementar perfectamente en sql también y permitirán generar un "código de scoring" puramente SQL. A R solo llevo lo absolutamente imprescindible para hacer el análisis o modelo que toque. En el peor de los casos, con casos complicados que puedan requerir algunos conjuntos de datos más grandes, comprar una máquina con 64-128GB de ram probablemente sea mucho más barato que las licencias de SAS necesarias para hacerlo en una máquina menos potente. Aquí también hace falta mucho cambio de chip de las empresas que parece que tienen alergia a hacer esto... Si la cosa se complica más y sigues necesitando procesar conjuntos de datos mucho más grandes, probablemente sea mejor opción pasarse al mundo big data (Hadoop-HIVE, Spark...). (Qué sí, que ahora SAS también hace big data, pero a qué precio... ) Saludos. Fer. El 5 de mayo de 2015, 13:12, Gilsanz, Jose Luis < jluis.gilsanz en tasacionesh.com<mailto:jluis.gilsanz en tasacionesh.com>> escribió: Hola Desviándome un poco de la cuestión que plantea Freddy, no estoy muy de acuerdo con lo que comenta acerca de que "... R no está diseñado (operaciones en la base de datos)..". Precisamente la mayor parte de mi trabajo en R se realiza vinculadolo a un servidor Microsoft SQL Server y lo cierto es que, hasta ahora, "se entienden" muy bien entre ellos. Cierto es que, en mi caso, la mayor parte del flujo de datos (con millones de registros como norma general) va de R hacia el SQL, puesto que utilizo R para descargar los datos, organizarlos y depurarlos antes de subirlos al SQL server. Al principio me inquietaba mucho el tiempo (horas en algún caso) en el que la consola de R se mostraba "pensando" hasta que se subían todos los datos al SQL Server, así que diseñe una función que usando el paquete snowfall mostraba una barra de progreso mientras se hacia la subida de datos. Para el flujo de datos en sentido inverso, (de SQL Server a R) siempre me aseguro de que la consulta SQL que "baja" los datos del SQL Server a un dataframe o similar solo recupera los datos verdaderamente necesarios. Lógicamente y dependiendo de lo que vayas a hacer luego con esos datos a veces esto no es posible, pero en general eso de "bajarse todo" e intentar ejecutar un proceso me parece un hábito bastante pernicioso e improductivo. -----Mensaje original----- De: R-help-es [mailto:r-help-es-bounces en r-project.org] En nombre de r- help-es-request en r-project.org<mailto:help-es-request en r-project.org> Enviado el: martes, 05 de mayo de 2015 12:00 Para: r-help-es en r-project.org<mailto:r-help-es en r-project.org> Asunto: Resumen de R-help-es, Vol 75, Envío 4 Envíe los mensajes para la lista R-help-es a r-help-es en r-project.org<mailto:r-help-es en r-project.org> Para subscribirse o anular su subscripción a través de la WEB https://stat.ethz.ch/mailman/listinfo/r-help-es O por correo electrónico, enviando un mensaje con el texto "help" en el asunto (subject) o en el cuerpo a: r-help-es-request en r-project.org<mailto:r-help-es-request en r-project.org> Puede contactar con el responsable de la lista escribiendo a: r-help-es-owner en r-project.org<mailto:r-help-es-owner en r-project.org> Si responde a algún contenido de este mensaje, por favor, edite la linea del asunto (subject) para que el texto sea mas especifico que: "Re: Contents of R-help-es digest...". Además, por favor, incluya en la respuesta sólo aquellas partes del mensaje a las que está respondiendo. Asuntos del día: 1. Muestreo de bases de datos.- (Freddy Omar López Quintero) 2. Re: Muestreo de bases de datos.- (Carlos J. Gil Bellosta ) 3. Re: Muestreo de bases de datos.- (javier.ruben.marcuzzi en gmail.com<mailto:javier.ruben.marcuzzi en gmail.com>) ---------------------------------------------------------------------- Message: 1 Date: Mon, 4 May 2015 15:15:33 -0300 From: Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> To: "r-help-es en r-project.org"<mailto:r-help-es en r-project.org> <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: [R-es] Muestreo de bases de datos.- Message-ID: <CALCOUqu7nKupKdc47Q2ixvsfGVqAdOhgdLmNMfc8JvTS7hqX+Q@ mail.gmail.com><mailto:CALCOUqu7nKupKdc47Q2ixvsfGVqAdOhgdLmNMfc8JvTS7hqX+Q en mail.gmail.com> Content-Type: text/plain; charset="UTF-8" ¡Hola! Mi duda surge por la siguiente anécdota: un amigo (empleado de una enorme consultora que tiene SAS) migró a R y ansioso me contó que iba a ejecutar las rutinas que había traducido de SAS a R y luego de intentar ejecutarlas nada le funcionó porque, ingenuamente, quería hacer cosas para las cuales R no está diseñado (operaciones en la base de datos) y porque leyó TODOS los datos de una consulta (millones de registros) e intentó correr algún procedimiento (!). Me dijo que SAS corre todo lo que él necesita y pues quedó tristemente decepcionado. Yo le dije que es corriente tomar una muestra de los datos para calibrar los modelos que se van a necesitar y que no es necesario utilizar los millones de registros enteros. Esto me hizo pensar ¿existen normas o buenas prácticas para el muestreo de las bases de datos?¿existen normativas?¿lineamientos? Es claro que mi primera respuesta sería ocupar los métodos ya desarrollados para encuestas, pero quién sabe. Si existen: ¿tienen su contraparte en R? Gracias y disculpen las molestias. ¡Salud! -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]] ------------------------------ Message: 2 Date: Mon, 4 May 2015 20:35:28 +0200 From: "Carlos J. Gil Bellosta " <cgb en datanalytics.com><mailto:cgb en datanalytics.com> To: Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> Cc: "r-help-es en r-project.org"<mailto:r-help-es en r-project.org> <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: Re: [R-es] Muestreo de bases de datos.- Message-ID: <CADg83efiwWEdwA6dyR4RUkwB5Qc5evOAmdLfBeg+yO0GngL0Aw @mail.gmail.com> Content-Type: text/plain; charset=UTF-8 Hola, ¿qué tal? La mejor manera de muestrear una tabla en una base de datos es a través del módulo de algún valor (típicamente autonumérico), como los ids. Si no, a través del módulo de un hash de algún identificador similar. Este procedimiento tiene la ventaja de ser repetible: consultas sucesivas pueden muestrear la misma subpoblación u otra de tamaño similar completamente distinta de la anterior. El filtro se hace en el where de la consulta a la base de datos (y la sintaxis cambia de una a otra). Si los datos son grandes y están en una base de datos, es mejor manipularlos dentro de ella previamente enviando consultas SQL desde R y solo descargar los datos (debidamente filtrados y muestreados, es decir, pequeños y/o manejables) al final. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 4 de mayo de 2015, 20:15, Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> escribió: ¡Hola! Mi duda surge por la siguiente anécdota: un amigo (empleado de una enorme consultora que tiene SAS) migró a R y ansioso me contó que iba a ejecutar las rutinas que había traducido de SAS a R y luego de intentar ejecutarlas nada le funcionó porque, ingenuamente, quería hacer cosas para las cuales R no está diseñado (operaciones en la base de datos) y porque leyó TODOS los datos de una consulta (millones de registros) e intentó correr algún procedimiento (!). Me dijo que SAS corre todo lo que él necesita y pues quedó tristemente decepcionado. Yo le dije que es corriente tomar una muestra de los datos para calibrar los modelos que se van a necesitar y que no es necesario utilizar los millones de registros enteros. Esto me hizo pensar ¿existen normas o buenas prácticas para el muestreo de las bases de datos?¿existen normativas?¿lineamientos? Es claro que mi primera respuesta sería ocupar los métodos ya desarrollados para encuestas, pero quién sabe. Si existen: ¿tienen su contraparte en R? Gracias y disculpen las molestias. ¡Salud! -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es ------------------------------ Message: 3 Date: Mon, 4 May 2015 19:32:14 +0000 From: <javier.ruben.marcuzzi en gmail.com><mailto:javier.ruben.marcuzzi en gmail.com> To: "=?utf-8?Q?Carlos_J._Gil_Bellosta?=" <cgb en datanalytics.com><mailto:cgb en datanalytics.com>, Freddy López <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> Cc: "=?utf-8?Q?R-help-es en r-project.org?="<mailto:=?utf-8?Q?R-help-es en r-project.org?=> <r-help-es en r-project.org><mailto:r-help-es en r-project.org> Subject: Re: [R-es] Muestreo de bases de datos.- Message-ID: <5547cad4.48958c0a.7228.2102 en mx.google.com><mailto:5547cad4.48958c0a.7228.2102 en mx.google.com> Content-Type: text/plain; charset="UTF-8" Estimado Freddy López Yo estoy de acuerdo con Carlos Gil Bellosta, no se si es apropiado para millones del registros como los que usted comenta, pero R tiene sqldf, que básicamente usa sqlite, esto posibilita usar una base de datos dentro de R sin tener que preocuparnos demasiado, otra forma es utilizar data.table en lugar de data.frame, dplyr, posiblemente su amigo no migro correctamente de SAS a R (aunque tome con cuidado esto último, yo nunca use SAS). Javier Rubén Marcuzzi De: Carlos J. Gil Bellosta Enviado el: ?lunes?, ?04? de ?mayo? de ?2015 ?03?:?35? ?p.m. Para: Freddy López CC: R-help-es en r-project.org<mailto:R-help-es en r-project.org> Hola, ¿qué tal? La mejor manera de muestrear una tabla en una base de datos es a través del módulo de algún valor (típicamente autonumérico), como los ids. Si no, a través del módulo de un hash de algún identificador similar. Este procedimiento tiene la ventaja de ser repetible: consultas sucesivas pueden muestrear la misma subpoblación u otra de tamaño similar completamente distinta de la anterior. El filtro se hace en el where de la consulta a la base de datos (y la sintaxis cambia de una a otra). Si los datos son grandes y están en una base de datos, es mejor manipularlos dentro de ella previamente enviando consultas SQL desde R y solo descargar los datos (debidamente filtrados y muestreados, es decir, pequeños y/o manejables) al final. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 4 de mayo de 2015, 20:15, Freddy Omar López Quintero <freddy.vate01 en gmail.com><mailto:freddy.vate01 en gmail.com> escribió: ¡Hola! Mi duda surge por la siguiente anécdota: un amigo (empleado de una enorme consultora que tiene SAS) migró a R y ansioso me contó que iba a ejecutar las rutinas que había traducido de SAS a R y luego de intentar ejecutarlas nada le funcionó porque, ingenuamente, quería hacer cosas para las cuales R no está diseñado (operaciones en la base de datos) y porque leyó TODOS los datos de una consulta (millones de registros) e intentó correr algún procedimiento (!). Me dijo que SAS corre todo lo que él necesita y pues quedó tristemente decepcionado. Yo le dije que es corriente tomar una muestra de los datos para calibrar los modelos que se van a necesitar y que no es necesario utilizar los millones de registros enteros. Esto me hizo pensar ¿existen normas o buenas prácticas para el muestreo de las bases de datos?¿existen normativas?¿lineamientos? Es claro que mi primera respuesta sería ocupar los métodos ya desarrollados para encuestas, pero quién sabe. Si existen: ¿tienen su contraparte en R? Gracias y disculpen las molestias. ¡Salud! -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]] ------------------------------ Subject: Pié de página del digest _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es ------------------------------ Fin de Resumen de R-help-es, Vol 75, Envío 4 ******************************************** Jones Lang LaSalle Arquitectura, SLU Registration number: B-61888715 Registered Office: Pº de la Castellana, 51 - 5ª ; 28046 Madrid This e-mail is for the use of the intended recipient(s) only. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not use, disclose or distribute this e-mail without the author's prior permission. We have taken precautions to minimise the risk of transmitting software viruses, but we advise you to carry out your own virus checks on any attachment to this message. We cannot accept liability for any loss or damage caused by software viruses. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future then please respond to the sender to this effect. _______________________________________________ R-help-es mailing list R-help-es en r-project.org<mailto:R-help-es en r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]] -- Pedro Concejero BI & Big Data - Internal Exploitation - Telefónica I+D<http://www.tid.es> E-mail: pedro.concejerocerezo en telefonica.com<mailto:pedro.concejerocerezo en telefonica.com> skype: pedro.concejero twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro> linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es> Entusiasta R, me encontraréis aquí gRupo R madRid <http://madrid.r-es.org/> ________________________________ Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it. Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição [[alternative HTML version deleted]]
Freddy Omar López Quintero
2015-May-06 14:09 UTC
[R-es] Resumen de R-help-es, Vol 75, Envío 7
2015-05-06 11:00 GMT-03:00 Pedro Concejero Cerezo < pedro.concejerocerezo en telefonica.com>:> se ha integrado en Apache Spark?Ese es el punto, amigo Pedro. No es R puro. Es R integrado a Apache Spark. Pero no sé, quizás entiendo mal el significado de la integración. Salud.? -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges [[alternative HTML version deleted]]
Vaya, polémica. ¿R puro es R base? Porque van ya por 6618 paquetes en CRAN http://cran.r-project.org/web/packages/index.html Y nadie sabe bien cuántos hay en github. Por cierto, ¿alguno conoce un código para hacer una estimación? El 06/05/2015 a las 16:09, Freddy Omar López Quintero escribió: 2015-05-06 11:00 GMT-03:00 Pedro Concejero Cerezo <pedro.concejerocerezo en telefonica.com<mailto:pedro.concejerocerezo en telefonica.com>>: se ha integrado en Apache Spark ? Ese es el punto, amigo Pedro. No es R puro. Es R integrado a Apache Spark. Pero no sé, quizás entiendo mal el significado de la integración. Salud. ? -- «No soy aquellas sombras tutelares que honré con versos que no olvida el tiempo.» JL Borges -- Pedro Concejero BI & Big Data - Internal Exploitation - Telefónica I+D<http://www.tid.es> E-mail: pedro.concejerocerezo en telefonica.com<mailto:pedro.concejerocerezo en telefonica.com> skype: pedro.concejero twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro> linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es> Entusiasta R, me encontraréis aquí gRupo R madRid <http://madrid.r-es.org/> ________________________________ Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario, puede contener información privilegiada o confidencial y es para uso exclusivo de la persona o entidad de destino. Si no es usted. el destinatario indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización puede estar prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. The information contained in this transmission is privileged and confidential information intended only for the use of the individual or entity named above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this transmission in error, do not read it. Please immediately reply to the sender that you have received this communication in error and then delete it. Esta mensagem e seus anexos se dirigem exclusivamente ao seu destinatário, pode conter informação privilegiada ou confidencial e é para uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o destinatário indicado, fica notificado de que a leitura, utilização, divulgação e/ou cópia sem autorização pode estar proibida em virtude da legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos o comunique imediatamente por esta mesma via e proceda a sua destruição [[alternative HTML version deleted]]