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 ...
随机推荐
- vue表单校验限制输入数字后小数点两位(包括避开通过中文输入法的那些坑)
<el-form-item label="海运运费系数"> <el-input v-model.trim="ruleForm.oceanFreightC ...
- linux一些指令
一. 文件操作命令 查看当前目录下的文件或文件夹 详细查看ls –l 每列代表不同的意义: 第一列drwxr-xr-x 表示权限, n 其中第一个字符d表示 目录(可能有b-块 ...
- ROS2踩坑记录
在Windows10的WSL2中的Ubuntu22.04子系统中安装ros2 humble版本. 官方文档http://docs.ros.org/en/humble/Installation/Ubun ...
- Java的由来
Java 发展史 1.1.起源 20 世纪 90 年代,单片式计算机系统诞生,单片式计算机系统不仅廉价,而且功能强大,使用它 可以大幅度提升消费性电子产品的智能化程度. SUN 公司为了抢占市场先机, ...
- UMA插件专题(一)——基础网格创建
什么是UMA? UMA,Unity Multipurpose Avatar,是一个开源Avatar创建框架,通过它可以实现自定义人物(或任何生物)的模型,包括换装,改变身材样貌等功能. 现在先从UMA ...
- 2.面向对象基础-03Java数组
一.数组的创建和初始化 (一)创建数组: import java.util.*; import java.io.*; public class Main { public static void ma ...
- ACM 的正确入门方式是什么?
作者:数学lover 链接:https://www.zhihu.com/question/51727516/answer/127265733 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...
- vue使用阿里oss上传
1.首先用包管理工具 npm install ali-oss --S 下载oss依赖包 2.在util文件里创建util.js文件,在该文件写入 export default { getClient: ...
- VulnHub靶场练习之 grotesque:2
步骤1:信息收集 拿到靶机首先看一下开放的端口 可以看到开放了很多端口 比如22 ssh.80 http等等 那么就先访问一下80看一下 页面没有什么有用的东西 查看一下网页源代码 也没有找到什么有价 ...
- django+easyui
django+easyui 快速构建网站 演示地址:http://demo.topjui.com/?from=360tg