在R中显示UTF-8编码的中文字符

use*_*297 8 locale r utf-8

我尝试在R中打开包含(传统)中文字符的UTF-8编码.csv文件.出于某种原因,R有时将信息显示为中文字符,有时显示为unicode字符.

例如:

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

data
Run Code Online (Sandbox Code Playgroud)

将生成unicode字符,同时:

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

data[,1]
Run Code Online (Sandbox Code Playgroud)

实际上会显示汉字.

如果我把它变成一个矩阵,它也会显示中文字符,但如果我试着查看数据(命令视图(数据)或修复(数据)),它会再次显示为unicode.

我向使用Mac的人(我使用的是PC,Windows 7)征求了建议,其中一些人一直都有汉字,有些则没有.我试图将原始数据保存为表格,并以这种方式将其读入R中 - 结果相同.我尝试在RStudio,Revolution R和RGui中运行脚本.我试图调整语言环境(例如中文),但是R不允许我改变它,否则结果是乱码而不是unicode字符.

我目前的语言环境是:

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

任何有助于让R持续展示汉字的帮助将不胜感激......

小智 4

不是一个错误,更多的是characterfactor构造data.frame.

\n\n

您可以首先开始,data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE)这将使您的汉字成为该类型character,因此通过打印它们,您应该看到您所期望的内容。

\n\n

@nograpes:同样x=c(\'\xe4\xb8\xad\xe8\x8f\xaf\xe6\xb0\x91\xe6\x97\x8f\');x; y <- data.frame(x, stringsAsFactors=FALSE),一切都应该没问题。

\n