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 ...
随机推荐
- 【Appium_python】多进程启动时,没有设置间隔导致连接关闭,以及等待时间,导致用例未执行完成,服务提早关闭。
多进程启动多设备时,没有设置间隔时间,appium服务器以为受到远程攻击,就自动关闭连接,导致服务启动失败, 解决方法:用time.sleep设置时间间隔 也需要增加等待时间,等待其他设备用例都执行完 ...
- 4组-Beta冲刺-3/5
一.基本情况 队名:摸鲨鱼小队 组长博客:https://www.cnblogs.com/smallgrape/p/15600609.html github链接:https://github.com/ ...
- VMWare安装CentOS 7系统 & 操作系统优化
1.准备工作 (1)VMWare 14:https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.1-7 ...
- JavaScript常见事件记录
JavaScript常见事件记录 onblur: 元素失去焦点 onfocus: 元素获得焦点 onchange: 用户改变域的内容 onclick: 鼠标点击某个对象 ondblclick: 鼠标双 ...
- 当前SAT主要关键技术及其相关文献2022-11-1
摘录自: Tasniem Nasser Al-Yahya, Mohamed El Bachir Menai, Hassan Mathkour:Boosting the Performance of C ...
- 3、一个简单的Java应用程序
/* 1.Java中区分大小写,如果出现了大小写拼写错误,例如将main拼写成Main,则程序将无法运行. 2.关键字public成为访问修饰符,用来控制程序的其他部分对这段代码的访问级别. 3.关键 ...
- MAC读写模式自动挂载硬盘/不自动挂载硬盘
一.卸载硬盘 sudo umount /dev/disk1s1 自己从磁盘工具获取设备ID 或使用终端命令:diskutil list 来获取 二.新建文件夹以供挂载,位子自选 sudo mkdir ...
- win10 wampserver升级 php7.0至 php7.2
1.去官网下载php7.2 下载地址: https://windows.php.net/download#php-7.0 2.下载安装 visual c++ 2017 或 visual c++ 20 ...
- OSIDP-并发:死锁和饥饿-06
死锁原理 死锁:一组相互竞争系统资源或者进行通信的进程间"永久"阻塞的现象. 资源分为两类:可重用资源和可消耗资源. 可重用资源:一次只能被一个进程使用且不会被耗尽的资源.如处理器 ...
- Python机器学习/LogisticRegression(逻辑回归模型)(附源码)
LogisticRegression(逻辑回归) 逻辑回归虽然名称上带回归,但实际上它属于监督学习中的分类算法. 1.算法基础 LogisticRegression基本架构源自于Adline算法,只是 ...