2012-06-08 9 views
6

Intento abrir un archivo .csv codificado en UTF-8 que contiene caracteres chinos (tradicionales) en R. Por alguna razón, R muestra la información algunas veces como caracteres chinos, a veces como unicode caracteres.Mostrar caracteres chinos codificados en UTF-8 en R

Por ejemplo:

data <-read.csv("mydata.csv", encoding="UTF-8") 

data 

producirá caracteres Unicode, mientras que:

data <-read.csv("mydata.csv", encoding="UTF-8") 

data[,1] 

realmente mostrar caracteres chinos.

Si lo convierto en una matriz, también mostrará caracteres chinos, pero si trato de ver los datos (comando Ver (datos) o corregir (datos)) está nuevamente en modo Unicode.

He pedido consejo de personas que usan una Mac (estoy usando una PC, Windows 7), y algunas de ellas tienen caracteres chinos en todas partes, otras no. Traté de guardar los datos originales como una tabla en su lugar y leerlos en R de esta manera - el mismo resultado. Intenté ejecutar el script en RStudio, Revolution R y RGui. Traté de ajustar la configuración regional (por ejemplo, a chino), pero o bien R no me permitió cambiarlo o el resultado fue un galimatías en lugar de caracteres unicode.

Mi localización actual es:

"LC_COLLATE = French_Switzerland.1252; LC_CTYPE = French_Switzerland.1252; LC_MONETARY = French_Switzerland.1252; LC_NUMERIC = C; LC_TIME = French_Switzerland.1252"

Cualquier ayuda para que R muestre consistentemente los caracteres chinos sería muy apreciada ...

+0

Hm, esto parece un error. Para aquellos interesados, es fácilmente reproducible con este código: 'x = c ('中華民族'); x; data.frame (x)'.No intentes pegar ese código en el Editor R, simplemente pégalo directamente en la consola o no funcionará. – nograpes

+0

Ver mi respuesta en http://stackoverflow.com/questions/22876746/how-to-read-data-in-utf-8-format-in-r – Sathish

Respuesta

2

No es un error, más una mala interpretación de las conversiones del sistema de tipos subyacentes (el tipo character y elTipo) al construir un data.frame.

Puede comenzar primero con data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE), que hará que sus caracteres chinos sean del tipo character y así al imprimirlos debería ver lo que está esperando.

@nograpes: del mismo modo x=c('中華民族');x; y <- data.frame(x, stringsAsFactors=FALSE) y todo debería estar bien.

+1

En realidad, eso no funciona para mí. Intenta ejecutar ese código y luego 'print (y)'. He hecho [una pregunta sobre esto] (http://stackoverflow.com/questions/17715956/why-do-some-unicode-characters-display-in-matrices-but-not-data-frames-in-r) abordando más directamente el problema. – nograpes

+0

Curiosamente, eso ahora funciona para mí (cambié a una computadora diferente mientras tanto, lo que podría o no hacer la diferencia). ¡Gracias! – user1445297

1

En mi caso, la codificación utf-8 no funciona en mi r. Pero la codificación Gb * funciona. Pero el utf8 funciona en ubuntu. Primero necesita averiguar la codificación predeterminada en su sistema operativo. Y codifícalo tal como es. Excel no puede codificarlo como utf8 correctamente incluso lo reclama como save etf8.

(1) Descargar 'abrir hoja'.

(2) Ábralo correctamente. Puede desplazar el método de codificación hasta que vea el carácter chino que se muestra en la ventana de vista previa.

(3) Guárdelo como utf-8 (si desea utf-8). (UTF-8 no es la solución a todos los problemas, que TIENE QUE conoce la codificación por defecto en su sistema primero)

Cuestiones relacionadas