R Studio中的汉字编码

时间:2017-07-03 10:28:43

标签: r encoding utf-8 chinese-locale

我目前正在R Studio中处理大量中文病历,但在处理汉字时遇到问题。特别是,我能够"view" Chinese characters in table form(即使用R Studio的内置数据查看器查看整个数据集),但我无法{R} Markdown render them in outputs from code-chunks - 即无法处理" /"互动"和他们一起。

我已经尝试通过Sys.setlocale(category = "LC_CTYPE", locale = "chs")将系统区域设置设置为简体中文,通过read.csv('filepath/filename.csv', encoding = "UTF-8", stringsAsFactors = FALSE)读取带有UTF-8编码的.csv,甚至更改操作系统语言(Windows 10),但都无济于事。

您对可能出现的双重治疗方法有任何想法。非常感谢R Studio中的汉字!

1 个答案:

答案 0 :(得分:0)

今天我遇到了一个类似的问题——用一个包含一些汉字的交互式情节编织一个降价文档。代码在正常的 R 会话中运行良好,但在编写降价文档时输出不同,其中数据整理步骤导致 <U+xxxx>,扰乱了后续绘图并因此编织。

 df %>%
    filter(str_detect(variable, "皖"))

对我来说,在 markdown 文档中添加以下行有效:

Sys.setlocale(category = "LC_CTYPE", "Chinese (Simplified)_China.936")

Finding all available locales on a machine is not easy,这是一个很深的兔子洞。至于为什么在 R 会话和编织时会发生不同的事情,我怀疑这是由于评估脚本时的一些默认设置,但这是推测。

深入了解这里可能发生的事情: knitr::render 使用 %n% 通过原始函数 globalenv() 获取 a new? global environment 的网络属性。我们可以在 this advice 之后检查这个函数,在 R 的源代码中找到 do_globalenv