Skip to content

[R-es] Bases de datos, comas y puntos.-

6 messages · Carlos J. Gil Bellosta, Carlos Ortega, Javier Marcuzzi +2 more

#
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:
...
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
#
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
#
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:
...
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 en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
4 days later
#
Gracias Luciano, Carlos Gil, Javier y Carlos Ortega.

Experimenté todo lo que pude con todas vuestras sugerencias pero me
fue totalmente imposible hacerlo funcional.

La solución de Luciano la conocía, pero para hacerlo con cada variable
numérica de cada tabla implicaba mucho tiempo invertido.

La solución de Carlos J. GIl nunca me funcionó a cabalidad.
Efectivamente sqlQuery, de RODBC, me mostraba los datos al menos como
numeric en R (a diferencia de dbGetQuery que los traía como character)
pero ¡sin decimales! Si en la tabla original había uno valor 12,29,
luego de hacer la conexión, R lo tomaba como 12 solamente. La opción
dec no reportaba mayor diferencia

Dentro de la base de datos no hay problemas, estimado Javier. Es al
momento de trabajar los datos por medio de una conexión. El tamaño es
de varios gigas.

La sugerencia de Carlos Ortega es semejante a la de don Luciano y le
huí por lo tarda.

Moraleja: no pude corregirlo de una forma... elegante. Mi solución fue
exportar las tablas a archivos planos para quitarles las comas con un
editor (lo que conllevó a otro problema: ¿un editor para archivos
planos enormes, verdaderamente enormes, que funcione decentemente?:
solución privativa: UltraEdit) y luego volverlas a importar y así me
funcionó todo luego a las mil maravillas.

Gracias a todos.

2011/5/25 Carlos Ortega <coforfe en gmail.com>
--
«But Gwindor answered: 'The doom lies in yourself, not in your name.'»

JRR Tolkien
#
Hola Freddy.

Si tus ficheros son de texto plano, cambiar las comas por puntos (o viceversa) es muy sencillo con algún soft parecido al Search&Replace o Replace Studio Pro (de Funduc) o el "Buscar y Reemplazar" de El Guille (http://www.elguille.info/vb/utilidades/GSBYR2.HTM) más sencillo pero freeware. Así podrás sustituir los caracteres que necesites en un fichero o grupo de ficheros o carpetas sin tener que abrirlos ni convertirlos.

Igual, como solución colateral, te apaña.

Un Saludo,
Miguel.



-----Mensaje original-----
De: r-help-es-bounces en r-project.org [mailto:r-help-es-bounces en r-project.org] En nombre de Freddy López
Enviado el: lunes, 30 de mayo de 2011 14:26
CC: r-help-es en r-project.org
Asunto: Re: [R-es] Bases de datos, comas y puntos.-

Gracias Luciano, Carlos Gil, Javier y Carlos Ortega.

Experimenté todo lo que pude con todas vuestras sugerencias pero me fue totalmente imposible hacerlo funcional.

La solución de Luciano la conocía, pero para hacerlo con cada variable numérica de cada tabla implicaba mucho tiempo invertido.

La solución de Carlos J. GIl nunca me funcionó a cabalidad.
Efectivamente sqlQuery, de RODBC, me mostraba los datos al menos como numeric en R (a diferencia de dbGetQuery que los traía como character) pero ¡sin decimales! Si en la tabla original había uno valor 12,29, luego de hacer la conexión, R lo tomaba como 12 solamente. La opción dec no reportaba mayor diferencia

Dentro de la base de datos no hay problemas, estimado Javier. Es al momento de trabajar los datos por medio de una conexión. El tamaño es de varios gigas.

La sugerencia de Carlos Ortega es semejante a la de don Luciano y le huí por lo tarda.

Moraleja: no pude corregirlo de una forma... elegante. Mi solución fue exportar las tablas a archivos planos para quitarles las comas con un editor (lo que conllevó a otro problema: ¿un editor para archivos planos enormes, verdaderamente enormes, que funcione decentemente?:
solución privativa: UltraEdit) y luego volverlas a importar y así me funcionó todo luego a las mil maravillas.

Gracias a todos.


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