谈谈R中的乱码(一) 您所在的位置:网站首页 warning怎么读中文 谈谈R中的乱码(一)

谈谈R中的乱码(一)

2023-11-08 05:08| 来源: 网络整理| 查看: 265

作者简介Introduction

baidao:个人博客: 数据匠:http://www.baidao.net/

在R教学中,首先要跨过去的一座大山就是乱码问题。很多学生在装好R和RStudio之后,刚刚运行RStudio,还未尝个鲜,写出R的第一段甚至人生第一段hello world代码,乱码就来立个下马威了(此处应该有乱码翻车现场截图)。

对于许多从 Stata 转过来的社科领域研究人员来说,在学习和使用R的过程中是如此频繁地遭遇乱码问题更是一件很不可思议的事情。乱码无处不在,令人抓狂,令人崩溃,茶饭不思,错过DDL,成为一块死肉。的确,相对于封闭的Stata来说,作为开放系统的R不仅要处理作为数据的文本,还需同各种系统进行数据交换,结果输出到各类格式中,必须要支持各种字符编码。然而文本编码作为计算机领域的专门知识,不仅普通使用者不懂,大多数R包的开发者也不甚了解,代码可能写的不规范,再加上 R 语言与 c 语言的交互调用,于是就出现了异常复杂的R生态乱码问题。不仅导入数据时乱码,输出结果时乱码,制图时乱码,甚至原本正确的编码到了中间某一步就乱码了。

博主作为资深文科生,今天却要自不量力地对R的乱码问题做一些解析,提供一些解决思路,以飨后来者。

先让RStudio运行起来

对于那些第一次运行RStudio就遭遇车祸的童鞋来说,大部分都是 Windows 用户,而且 Windows 的账户用的是中文名。

在此,先强调两个傻瓜原则,能给将来避免很多麻烦:

R 以及 RStudio 的安装路径不要有中文和空格,必须全英文。

Windows 账户要用英文!

那么已经设置了中文帐户名的怎么办?

一劳永逸的办法,当然是新建一个英文账户登录了;

若是不会上面的操作,或者觉得切换账户太麻烦,可以改一下 Windows 的临时目录:

右键“我的电脑”-“属性”-“高级系统设置”-“环境变量”,将 temp 和 tmp 都设为 c:\windows\temp\(下图红框所示):

一路确定之后,重启 RStudio 就可以去敲写人生第一行R代码了。

那么,在 MacOS 下翻车的用户怎么办?博主不用 Mac,所以现在没法复原车祸现场,请快递一台 MacBook Pro 以便博主更好地服务大众

R 的字符编码

在介绍R的字符编码之前,还是得有一些关于文本编码的基本知识,建议先读读这篇(http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html),包括下面的评论。

这个世界上的文本编码方案千百种,有些 linux 的支持者及R包开发者号称要用 UTF-8 一统天下,可惜这只能是一厢情愿,因为很多字符超出了 UTF-8所能涵盖的范围。不得不承认,大多数R包开发者用的是 linux 或 Mac 系统,得益于以 UTF-8 作为整个体系的基础,避免了很多乱码的情形。但也正是他们写的不规范,才导致了 Windows 下罄竹难书的灾难性后果啊。字符编码不仅有方案之争,还有系统之争,关于 BOM 的吵架就有一罗锅。作为实用主义者的文科僧,博主只关心如何保证文本编码的正确传递、显示和输出。

先提供两个基本的函数:

1、纠正乱码的一招鲜

碰到乱码,一般可以先尝试一下,给它设置一个正确的编码:

Encoding(someX)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有