R语言包和中文乱码解决方案
常用R语言包
——数据处理:lubridata ,plyr ,reshape2,stringr,formatR,mcmc;
——机器学习:nnet,rpart,tree,party,lars,boost,e1071,BayesTree,gafit,arules;
——可视化包:ggplot2,lattice,googleVis;
——地图包:ggmap,RgoogleMaps,rworldmap;
金融包
——时间序列:zoo,xts,chorn,its,timeDate;
——金融分析:quantmod,RQuantLib,portfolio,PerformanceAnalytics,TTR,sde,YieldCurve;
——风险管理:parma,evd,evdbayes,evir,extRemes,ismev;
数据挖掘包
——聚类:
——基于划分的方法: kmeans, pam, pamk, clara ;
——基于层次的方法: hclust, pvclust, agnes, diana
——基于模型的方法: mclust
——基于密度的方法: dbscan
——基于画图的方法: plotcluster, plot.hclust
——基于验证的方法: cluster.stats
——文本挖掘:tm
——分类:
——策树: rpart, ctree
——随机森林: cforest, randomForest
——回归, Logistic, Poisson,glm, predict, residuals
——生存分析: survfit, survdiff, coxph
——统计
——常用的包: Base R, nlme
——方差分析: aov, anova
——密度分析: density
——假设检验: t.test, prop.test, anova, aov
——线性混合模型:lme
——主成分分析和因子分析:princomp
——优化
——最简单的:stat包中的optimize, optim 函数
——非线性优化:BB包
——线性不等式约束的非线性优化:constrOptim,adaptive barrier 算法
——非线性box约束优化:nlminb
——带约束的非线性优化:Rsolnp包中solnp函数,alabama包中的constrOptim.nl()函数
——线性规划:lpSolve 包 中的lp函数,linprog包中的 solveLP函数
——中文分词包
——Rwordseq 中文分词包

中文编码
中文乱码是让很多编程者头痛的问题。
什么是编码?
文字符号在计算机中是用 0 和 1 的字节序列表示的,编码就是将字节序列与所要表示的文字符号建立起映射。要把各个国家不同的所有文字符号(字符集)正常显示和使用,需要做两件事情:各个国家不同的所有文字符号一一对应地建立数字编码;数字编码按一定编码规则用 0-1 表示出来。第一件事情已有一种 Unicode 编码(万国码)来解决:它给全世界所有语言的所有文字符号规定了独一无二的数字编码,字符间分隔的方式是用固定长度字节数。这样各个国家只需要做第二件事情:为自己国家的所有文字符号设计一种编码规则来表示对应的 Unicode 编码。
——汉字符号编码
再来说中国的第二件事情:汉字符号(中文)编码。历史原因产生了多种中文编码,ASCII(128 个字母和符号,英文够用)被所有编码兼容,而最常见的 UTF-8 与 GBK 之间除了ASCII 部分之外没有交集。文件采用什么编码方式,就用什么编码方式打开。只要是用不兼容的编码方式打开文件,就会出现乱码。
GBK(国标扩展)系列,根据包含汉字符号从少到多。依次是GB2312: 只包含 6763 个汉字;GBK: 包含 20902 个汉字,基本足够用;GB18030: 又分GB1830-2000 和 GB1830-2005,包含七万多个汉字;GBK 编码的汉字基本是2 字节,节省空间,但只适合国内中文环境。
UTF-8 编码(Unicode 转换格式),是 Unicode 的再表示,支持各个国家的文字符号,兼容性非常好。所以,目前 UTF-8 有一统天下的趋势。UTF-8 是一种变长编码,解决字符间分隔的方式是通过对二进制中最高位连续 1 的个数来决定该字是几字节编码。所有常用汉字的 Unicode 值均可用 3 字节的 UTF-8 表示出来。UTF-8 通常不带 BOM (字节序标记 EF BB BF,位于文件的前 3 个字节)也不需要带BOM,但 Windows 历史遗留问题又会经常遇到有 BOM UTF-8 的数据文件。
——其他编码
ANSI: 不是真正的编码,而是 Windows 系统的默认编码的统称,对于简体中文系统就是GB2312;对于繁体中文系统就是 Big5 等
Latin1: 又称 ISO-8859-1,欧洲人发明的编码,也是 MySQL 的默认编码
Unicode big endian: 用 UCS-2 格式存储 Unicode 时,根据两个字节谁在前谁在后,分为 Little endian(小端)和 Big endian(大端)
UTF-16, UTF-32: Unicode 的另两种再表示,分别用 2 字节和 4 字节。
中文乱码的解决办法
首先,查看并确认你的 windows 系统的默认编码方式:
Sys.getlocale("LC_CTYPE") # 查看系统默认字符集类型
#[1] "Chinese (Simplified)_China.936" #代码936就表明是"中国- 简体中文(GB2312)"
大多数中文乱码都是 GBK 与 UTF-8 不兼容导致的,常见的有两种情形。在你的电脑不中文乱码的 R 脚本、Rmarkdown 等,拷贝到另一台电脑上时出现中文乱码。解决办法:前文在配置 Rstudio 时已讲到,设置 code-saving 的 Default text encoding 为兼容性更好的 UTF-8。数据文件采用什么编码方式,就用什么编码方式打开或读取。采用了不兼容的另一种编码打开或读取,肯定出现中文乱码。
其次,最简单的处理,打开Rstudio中菜单File—Reopen with Eecoding界面,修改中文解码源即可。

参考文献
(【R语言新书】2.2 数据读写)[https://zhuanlan.zhihu.com/p/256284851]
R语言包和中文乱码解决方案的更多相关文章
- zabbix安装中文语言包及中文乱码的解决(zabbix5.0)
一,zabbix不能配置中文界面的问题: 1, zabbix5.0 系统安装后,web界面不能选择使用中文 系统提示: You are not able to choose some of the l ...
- R语言pdf输出中文乱码处理
1.使用基础包.使用函数pdf()输出 在使用pdf()函数时,要输出中文,仅仅有一种字体可选. 样例: pdf("chinese.pdf",family="GB1&qu ...
- Ubuntu系统配置Zabbix前端及中文乱码解决方案
Ubuntu系统配置Zabbix前端及中文乱码解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装zabbix 博主推荐阅读: https://www.cnblogs ...
- Ubuntu配置图形桌面LXDE和VNC、中文语言包、中文输入法
Ubuntu配置图形桌面LXDE和VNC.中文语言包.中文输入法 http://www.lijiejie.com/ubuntu-vps-config-lxde-vnc/ LXDE是Ubuntu图形桌面 ...
- aspx页面,中文乱码解决方案
由于文件编码方式编码方式不统一出现样式中文乱码解决方案: 今天碰到的问题:页面字体样式设置的'微软雅黑',可页面没引用.我调试看到样式出现中文乱码了 这种问题,就需要转换文件的编码方式,如下两步即可解 ...
- JSP中pageEncoding和charset区别,中文乱码解决方案(转载)
转载自:JSP中pageEncoding和charset区别,中文乱码解决方案 JSP指令标签中<%@ page contentType="text/html;charset=GB23 ...
- boost::xml——基本操作以及中文乱码解决方案 (续)
本博文主要想说明以下两点: 1.对于上一篇的<boost::xml——基本操作以及中文乱码解决方案>解释,这篇博文基本解决了正确输入输出中英文问题,但是好像还没有解决修改中文出现乱码的问题 ...
- 基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案
基于Windows环境下cmd/编译器无法输入中文,显示中文乱码解决方案 两个月前做C++课设的时候,电脑编译器编译结果出现了中文乱码,寻求了百度和大神们,都没有解决这个问题,百度上一堆解释是对编译器 ...
- JS传值中文乱码解决方案
JS传值中文乱码解决方案 一.相关知识 1,Java相关类: (1)java.net.URLDecoder类 HTML格式解码的实用工具类,有一个静态方法:public static String ...
- Java中文乱码解决方案
Java中文乱码解决方案 1.中文乱码解决方案,确保每个文件的默认编码是UTF-8 加入 URIEncoding="UTF-8" 代码中的设置 1>在se ...
随机推荐
- AIGC 至少能在两个方面改变当前的世界-纯银
互联网圈一个正在形成的共识是,web3 只是金融领域的创新,还没有任何征兆能进入大众社会,但 AIGC 对世界的改变正在眼前发生.AIGC 至少能在两个方面改变当前的世界.1.对于缺乏创造力的(文字) ...
- C#中的范围类型(Range Type)
//语法糖Rangestatic void Main(string[] args) { var myArray = new string[] { "Item1", "It ...
- 【python】第一模块 步骤五 第一课、内存管理机制
第一课.内存管理机制 一.课程介绍 1.1 课程概要 课程概要 赋值语句的内存分析 垃圾回收机制 内存管理机制 课程目标 掌握赋值语句内存分析方法 掌握id()和is()的使用 了解python的垃圾 ...
- C#-读取写入Excel
/// <summary> /// 读取Excel文档 /// </summary> /// <param name="Path">文件名 ...
- SpringBoot - Lombok使用详解4(@Data、@Value、@NonNull、@Cleanup)
六.Lombok 注解详解(4) 8,@Data (1)@Data 是一个复合注解,用在类上,使用后会生成:默认的无参构造函数.所有属性的 getter.所有非 final 属性的 setter 方法 ...
- JAVA面经-基础篇-线程
1.创建线程有哪几种方式? 创建线程有3种方式,分别是继承Thread类.实现Runnable类.实现Callable类. 继承Thread类的步骤: 1. 定义Thread类的子类, ...
- FlexPaperViewer跨服务器\跨域访问swf不显示问题
做在线预览办公文档时,遇到了使用flexpaper访问文件服务器swf不显示问题. 假想1: swf文件有问题? 实验1: 直接访问swf文件在文件服务器的地址,浏览器可以正常访问,但是放在flexp ...
- C# 获取当前路径7种方法及输出
//获取模块的完整路径.string path1 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;D:\wor ...
- VUE项目中检测网页滑动注意事项
一.this.$nextTick(function () { window.addEventListener('scroll', this.onScroll, true) ...
- 图算法之BFS
深度优先搜索(Breadth First Search),类似于树的层序遍历,搜索模型是队列,还是以下面的无向图为例: 实验环境是Ubuntu 14.04 x86 伪代码实现如下: 其中u 为 v ...