Por error se lo envié solo a Carlos..., lo envío de nuevo...
-------- Mensaje reenviado --------
Asunto: Re: [R-es] Trabajar en un único formato de codificación
Fecha: Mon, 09 Feb 2015 10:39:36 +0100
De: rubenfcasal <rubenfcasal en gmail.com>
Para: Carlos J. Gil Bellosta <cgb en datanalytics.com>
Hola a todos,
Yo también tuve algunos problemas con la codificación de
caracteres. Mi recomendación es la misma que la de Carlos, emplear
siempre UTF-8.
Con esto evitas problemas al trabajar con texto, p.e. podrías
emplear comandos de la forma (reutilizando un código que empleé...):
write.table(datos, "datos.csv", sep=";", col.names=TRUE,
row.names=FALSE,
quote=TRUE, na="NA", fileEncoding = "UTF-8")
datos <- read.table("datos.csv", header=TRUE, sep=";",
na.strings="NA",
dec=".",
strip.white=TRUE, encoding = "UTF-8")
Aún así puede haber problemas con los objetos, sobre todo al
guardarlos en formato .RData. Intentando enterarme de lo que pasa,
encontré que R almacena el tipo de codificación con cada cadena, pero
por defecto lo almacena como "unknown" (que entiendo que considera el
local de la maquina, las otras altarnativas son "latin1",
"UTF-8" y
"bytes"). Se puede ver la codificación de cualquier vector de texto
con
Encoding() y cambiarla. Para pasar a "UTF-8" también se puede usar
enc2utf8().
Suponiendo que creas el objeto datos con el comando anterior, si lo
guardas en un .Rdata aún puedes tener problemas al abrirlo en otro S.O.
(por lo menos a mí me pasó). Por ejemplo con los nombres de las
variables o los niveles de los factores (si hay caracteres especiales
como acentos). En ese caso yo lo solucioné empleando enc2utf8() antes de
llamar a save(). E.g.:
names(datos) <- enc2utf8(names(datos)).
Supongo que puede ser más cómodo cambiar la configuración de R
(?Sys.setlocale), pero yo no lo probé...
Un saludo, Rubén.
El 06/02/2015 a las 16:42, Carlos J. Gil Bellosta
escribió:> Hola, ¿qué tal?
>
> Mi consejo: usad UTF-8 a rajatabla. En código, en ficheros de texto,
> etc. En Mac y la mayor parte de los Linux normales no hay que hacer
> nada en particular. En Windows: hay que hacer explícito que los datos
> que lees son UTF-8 (mira las opciones Encoding y fileEnconding de las
> funciones de lectura).
>
> También podíais tratar de utilizar JSON (que obliga a usar UTF-8) en
> lugar de CSV para el intercambio de datos.
>
> Un saludo,
>
> Carlos J. Gil Bellosta
> http://www.datanalytics.com
>
>
>
>
> El día 6 de febrero de 2015, 16:36, Javier Villacampa González
> <javier.villacampa.gonzalez en gmail.com> escribió:
>> Hola buenas,
>>
>> quería preguntaros si alguno me podría ayudar con lo siguiente.
>>
>> Estoy ayudando a unos colegas de japón con un estudio de palabras. Y
nos
>> ocurre lo siguiente.
>> Yo hago los scripts y guardo los RDatao csv, pero estamos teniendo
>> problemas de compatibilidad entre sistemas.
>>
>> Me gustaría que se pudiese guardar todos ficheros de R en el mismo
formato
>> de codificación de datos. Los ficheros R, los ficheros csv y sobretodo
los
>> RData y así evitar problemas de codificación.
>>
>> Muchas gracias por adelantado
>>
#-------------------------------------------------------------------------
>> PD: Momento frustración...
>>
>> 1)Ya que si yo leo el fichero csv como UTF-16 pero luego guarda el csv
como
>> otra cosa es un pequeño infierno para hacer los scripts compatibles.
>>
>> 2)Porque si leo el csv en mac y me guarda los RData en una
codificación,
>> luego en windows lo hace de otra... al final no hay maldita manera de
>> pasarles un modelo. Malditamente frustrante...
>>
>>
>> --
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> 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
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
[[alternative HTML version deleted]]