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

Freddy López freddy.vate01 en gmail.com
Lun Mayo 30 14:25:46 CEST 2011


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>
>
> 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 en 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 en r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



--
«But Gwindor answered: 'The doom lies in yourself, not in your name.'»

JRR Tolkien



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