L'affichage codé en UTF-8 caractères Chinois dans la R
J'essaye d'ouvrir une codé en UTF-8 .fichier csv qui contient (traditionnel) des caractères Chinois dans R. Pour une raison quelconque, R affiche les informations parfois comme des caractères Chinois, parfois sous forme de caractères unicode.
Par exemple:
data <-read.csv("mydata.csv", encoding="UTF-8")
data
va produire des caractères unicode, alors que:
data <-read.csv("mydata.csv", encoding="UTF-8")
data[,1]
sera effectivement afficher les caractères Chinois.
Si je la transformer en une matrice, il permettra également d'afficher les caractères Chinois, mais si j'essaie de regarder les données (commande de la Vue(de données) ou fixe(données)), il est en unicode à nouveau.
J'ai demandé des conseils auprès de personnes qui utilisent un Mac (je suis sur un PC, Windows 7), et certains d'entre eux ont des caractères Chinois dans l'ensemble, d'autres n'ont pas. J'ai essayé d'enregistrer les données d'origine comme un tableau et de le lire dans la R de cette façon - même résultat. J'ai essayé de lancer le script dans RStudio, de Révolution R, et RGui. J'ai essayé d'ajuster les paramètres régionaux (p. ex. pour les chinois), mais la R ne m'a pas laissé le modifier ou l'autre, le résultat était du charabia au lieu de caractères unicode.
Mes paramètres régionaux actuels:
"LC_COLLATE=French_Switzerland.1252;LC_CTYPE=French_Switzerland.1252;LC_MONETARY=French_Switzerland.1252;LC_NUMERIC=C;LC_TIME=French_Switzerland.1252"
Toute l'aide pour obtenir des R de toujours afficher les caractères Chinois serait grandement apprécié...
- Hm, ça ressemble à un bug. Pour ceux que cela intéresse, il est facilement reproductible avec ce code:
x=c('中華民族');x;data.frame(x)
. N'essayez pas de les coller ce code dans les R de l'Éditeur, il suffit de le coller à droite dans la console ou il ne fonctionnera pas. - Voir ma réponse à stackoverflow.com/questions/22876746/...
Vous devez vous connecter pour publier un commentaire.
Pas un bug, plus d'un malentendu de la sous-système de type de conversions (
character
type et lafactor
type) lors de la construction d'undata.frame
.Vous pourriez commencer d'abord avec
data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE)
qui feront de vos caractères Chinois de lacharacter
type et par l'impression, vous devriez voir quel vous attendent.@nograpes: de même
x=c('中華民族');x; y <- data.frame(x, stringsAsFactors=FALSE)
et tout devrait être ok.print(y)
. J'ai fait une question à ce sujet plus de traiter directement le problème.Dans mon cas, le codage utf-8 ne fonctionne pas dans mon r. Mais la Go* l'encodage des œuvres.Mais l'utf8 wroks dans ubuntu. Vous devez d'abord comprendre le codage par défaut de votre système d'exploitation. Et l'encoder comme il est. Excel ne peut pas coder en utf8 correctement même qu'il prétend-il enregistrer en tant que etf8.