Estimados compañeros, Les contaré mi problema: supongamos que tengo millones de datos en un manejador famoso de base de datos al cual, por restricciones impuestas desde la alta gerencia, no puedo modificar en un ápice. Este manejador utiliza siempre (siempre) comas en lugar de puntos para separar decimales. Yo trabajo con R (naturalmente) y hago mis consultas a la base de datos utilizando la función dbGetQuery (de la librería DBI). Ahora, desde dentro del manejador, todo funciona bien, por ejemplo:>select var1 from tabla; -- muestra los datos: notar las comas >1,1 >1,0...>select avg(var1) from tabla; -- muestra la media de var1: notar la coma >1,115pero, dentro de R, una vez hecha la conexión, R lo interpreta como caracteres y no puedo hacer mucho con esto. ¿Existirá alguna manera que ustedes sepan para hacer el dbGetQuery de forma tal que las comas sean interpretadas como puntos decimales (de forma semejante a como lo hace read.table() con dec? Muchas gracias a todos. Salud. -- «But Gwindor answered: 'The doom lies in yourself, not in your name.'» JRR Tolkien
Hola, ¿qué tal? Yo suelo utilizar RODBC y el comando análogo, sqlQuery, tiene la opción "dec" para indicar que la coma es el separador de decimales. La función dbGetQuery admite como parámetro "...". Es probable que admita un comando equivalente. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com
Hola, Mientras encuentras el campo específico del driver (es una opción contemplada en las funciones de extracción del paquete DBI, como "...") de tu base de datos que te permite modificar las comas por puntos puedes optar por: a) modificar la coma por el punto vía gsub() y b) transformar el tipo de la columna/s modificadas de caracter a numérico vía "as.numeric()". Saludos, Carlos Ortega www.qualityexcellence.es http://qualityexcellence.wordpress.com/ (Blog) 2011/5/25 Freddy López <freddy.vate01@gmail.com>> Estimados compañeros, > > Les contaré mi problema: supongamos que tengo millones de datos en un > manejador famoso de base de datos al cual, por restricciones impuestas > desde la alta gerencia, no puedo modificar en un ápice. Este manejador > utiliza siempre (siempre) comas en lugar de puntos para separar > decimales. Yo trabajo con R (naturalmente) y hago mis consultas a la > base de datos utilizando la función dbGetQuery (de la librería DBI). > > Ahora, desde dentro del manejador, todo funciona bien, por ejemplo: > > >select var1 from tabla; -- muestra los datos: notar las comas > >1,1 > >1,0 > ... > > >select avg(var1) from tabla; -- muestra la media de var1: notar la coma > >1,115 > > pero, dentro de R, una vez hecha la conexión, R lo interpreta como > caracteres y no puedo hacer mucho con esto. > > ¿Existirá alguna manera que ustedes sepan para hacer el dbGetQuery de > forma tal que las comas sean interpretadas como puntos decimales (de > forma semejante a como lo hace read.table() con dec? > > Muchas gracias a todos. > > Salud. > > -- > «But Gwindor answered: ''The doom lies in yourself, not in your name.''» > > JRR Tolkien > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
No se que base de datos, RODBC puede ser útil, pero una pregunta ¿Cuántos MB o GB tiene la base de datos? Porque una alternativa puede ser realizar una consulta entre las tablas o copiar toda la base de datos, y comienza a trabajar con este resultado con el motor de base de datos que más de agrade o cómodo se sienta usted para su trabajo. MySQL o las libres no tienen problema de tamaño, SQLserver R2 permite usar en forma libra hasta 10GB. -----Mensaje original----- From: Freddy López Sent: Wednesday, May 25, 2011 11:31 AM To: r-help-es en r-project.org Subject: [R-es] Bases de datos, comas y puntos.- Estimados compañeros, Les contaré mi problema: supongamos que tengo millones de datos en un manejador famoso de base de datos al cual, por restricciones impuestas desde la alta gerencia, no puedo modificar en un ápice. Este manejador utiliza siempre (siempre) comas en lugar de puntos para separar decimales. Yo trabajo con R (naturalmente) y hago mis consultas a la base de datos utilizando la función dbGetQuery (de la librería DBI). Ahora, desde dentro del manejador, todo funciona bien, por ejemplo:>select var1 from tabla; -- muestra los datos: notar las comas >1,1 >1,0...>select avg(var1) from tabla; -- muestra la media de var1: notar la coma >1,115pero, dentro de R, una vez hecha la conexión, R lo interpreta como caracteres y no puedo hacer mucho con esto. ¿Existirá alguna manera que ustedes sepan para hacer el dbGetQuery de forma tal que las comas sean interpretadas como puntos decimales (de forma semejante a como lo hace read.table() con dec? Muchas gracias a todos. Salud. -- «But Gwindor answered: 'The doom lies in yourself, not in your name.'» JRR Tolkien _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es