我尝试在R中打开包含(传统)中文字符的UTF-8编码.csv文件。出于某种原因,R有时将信息显示为中文字符,有时显示为unicode字符。
例如:
data <-read.csv("mydata.csv", encoding="UTF-8")
data
将生成unicode字符,而:
data <-read.csv("mydata.csv", encoding="UTF-8")
data[,1]
实际上会显示汉字。
如果我把它变成矩阵,它也会显示中文字符,但如果我试着查看数据(命令视图(数据)或修复(数据)),它会再次显示为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持续展示中文字符的帮助将不胜感激......
答案 0 :(得分:2)
在构建character
时,不是错误,更是对基础类型系统转换(factor
类型和data.frame
类型)的误解。
您可以先使用data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE)
开始,这样可以使您的中文字符属于character
类型,因此通过打印出来,您应该会看到您期待的内容。
@nograpes:同样x=c('中華民族');x; y <- data.frame(x, stringsAsFactors=FALSE)
,一切都应该没问题。
答案 1 :(得分:1)
在我的情况下,utf-8编码在我的r中不起作用。但是Gb *编码可以工作。但utf8在ubuntu中肆虐。首先,您需要确定操作系统中的默认编码。并按原样编码。 Excel无法正确编码为utf8,即使它声称它保存为etf8。
(1)下载'打开表'。
(2)正确打开它。您可以滚动编码方法,直到您 查看预览窗口中显示的中文字符。
(3)将其保存为utf-8(如果你想要utf-8)。 (UTF-8不能解决所有问题,你必须首先知道系统中的默认编码)