1

我整天都在追逐这个问题。

我通过以下网址下载了一本教科书的练习材料:http://www.crupjcom.cn/UploadFiles/jxkj/gsgl/243184/采购基础R第二版例题和习题数据.rar

但是,这些RData在win10的R&Rstudio中运行良好,而在Mac中无法显示汉字

win10中的工作室:

链接:截图1

链接:截图2

Mac 中的工作室

汉字崩溃

链接:截图3

Mac 中的 R 控制台

汉字崩溃

链接:截图4

我在网站上搜索了很多解决方案,其中大部分是关于如何解决导入“.csv”文档的问题。但我的问题是如何将 RData 加载到 R 中而不会导致中文字符崩溃。

一些答案提到我们应该将Rstudio的“全局选项”中的“默认文本编码”切换为“UTF-8”,但我在Mac和Win10中检查了Rstudio,它们都处于“UTF-8”模式。

因此,我真的不知道真正的问题是什么。

4

1 回答 1

3

也许有一个更好的解决方案适用于全局,但一种方法是分别转换每个对象的编码:

load("~/Downloads/exercise1_1.RData")
exercise1_1[, 1:3]
#                    ָ\xb1\xea X2008\xc4\xea X2009\xc4\xea
# 1    \xb5\xcd\xca\xd5\xc8뻧          1500          1549
# 2      \xd6е\xc8ƫ\xcf»\xa7          2935          3110
# 3  \xd6е\xc8\xca\xd5\xc8뻧          4203          4502
# 4 \xd6е\xc8ƫ\xc9\u03fb\xa7          5929          6468
# 5    \xb8\xdf\xca\xd5\xc8뻧         11290         12319

names(exercise1_1) <- iconv(names(exercise1_1), from = "GB2312", to = "UTF-8")
exercise1_1 <- lapply(exercise1_1, function(x) if(is.factor(x)) as.character(x) else x)
exercise1_1 <- data.frame(lapply(exercise1_1, function(x) {
  if(is.character(x)) 
    iconv(x, from = "GB2312", to = "UTF-8")
  else 
    x
  }
))

exercise1_1[, 1:3]
#         指标 X2008年 X2009年
# 1   低收入户    1500    1549
# 2 中等偏下户    2935    3110
# 3 中等收入户    4203    4502
# 4 中等偏上户    5929    6468
# 5   高收入户   11290   12319
于 2018-04-22T18:44:38.500 回答