R语言读写中文编码方式
最近遇到一个很头疼的事,就是 R语言读写中文编码方式。在网上找到了一篇博文,谢谢博主的精彩分享,让我很快解决了问题,在此也分享一下
R语言读写数据的方法很多,这里主要是我在使用read.csv/read.table和write.csv/write.table时遇到的一些中文格式编码的问题。常见的中文编码方式两种:GBK(GB2312)和UTF-8。
Windows系统下:
read.csv()和read.table()方法不指定文件格式时,默认读取的文件是GBK格式。Rstudio里面有设置默认文本编码方式,但是修改前后读入中文数据情况都一样。
Linux(我使用的Redhat)系统下:
系统指定中文编码方式是UTF-8,所以read.csv()和read.table()都要求UTF-8。
如下两个文件,分别是UTF-8格式和GBK格式,首先用read.csv读取,可以看到不指定编码方式时,读取UTF-8格式文件是乱码。用encoding指定读取的文件编码方式为UTF-8后,正常。这样看起来read.csv()方法读取UTF-8好像可行?
那么我们再来看一个例子,相同的数据,只是最后多增加一列中文。同样,上面三种方式,读取UTF-8的时候问题直接变成了读取出错,“列的数目比列的名字要多”,并且制定编码方式为UTF-8也无法拯救你了。为什么会这样呢?
提示意思是,列名少了,那就去掉表头header=F就行了,结果如下,还是乱码,并且原本四列数据读进来后变成了七列。虽然指定encoding为UTF-8后没有了乱码,但是读取时行之间会错乱。但是用fileEncoding就没有问题了!
上述,总结而言,使用read.csv()时,有中文的话,请务必保证你的文件是GBK编码格式的。或者用fileEncoding来指定编码格式,不要用encoding!
用同样的数据来看read.table方法,只是需要多指定一个sep=”,”。同样,指定encoding无效,指定fileEncoding有效。
跟read.csv一样的问题,并且,这里header=F也可行。read.table比read.csv更严格,要求行都有相同的长度,不会自动填充NA。
write.csv/write.table方法可以使用,可以使用fileEncoding来指定输出文件的编码方式,如下,只要你的系统能识别这种方式就OK。
其实啰啰嗦嗦了这么久,总结而言就一句话read.csv/read.table尽量读入文件GBK格式(Win下),或者UTF-8格式(Linux下),不是的话,用fileEncoding指定编码格式,不要用encoding。
转载于:http://blog.csdn.net/cl1143015961/article/details/46453495
R语言读写中文编码方式的更多相关文章
- R语言两种方式求指定日期所在月的天数
R语言两种方式求指定日期所在月的天数 days_monthday<-function(date){ m<-format(date,format="%m& ...
- R语言读写数据
R语言读写数据 一般做模型的时候,从外部的excel中读入数据,我现在常用的比较多的是read_csv(file) 读入之前先把excel数据转化成.csv格式 同样的把结果输出来的时候用的是writ ...
- R语言 推荐算法 recommenderlab包
recommend li_volleyball 2016年3月20日 library(recommenderlab) library(ggplot2) # data(MovieLense) dim(M ...
- 皮尔逊相似度计算的例子(R语言)
编译最近的协同过滤算法皮尔逊相似度计算.下顺便研究R简单使用的语言.概率统计知识. 一.概率论和统计学概念复习 1)期望值(Expected Value) 由于这里每一个数都是等概率的.所以就当做是数 ...
- 皮尔森相似度计算举例(R语言)
整理了一下最近对协同过滤推荐算法中的皮尔森相似度计算,顺带学习了下R语言的简单使用,也复习了概率统计知识. 一.概率论和统计学概念复习 1)期望值(Expected Value) 因为这里每个数都是等 ...
- 比较分析C++、Java、Python、R语言的面向对象特征,这些特征如何实现的?有什么相同点?
一门课的课后题答案,在这里备份一下: 面向对象程序设计语言 – 比较分析C++.Java.Python.R语言的面向对象特征,这些特征如何实现的?有什么相同点? C++ 语言的面向对象特征: 对象模 ...
- R语言基于S4的面向对象编程
前言 本文接上一篇文章 R语言基于S3的面向对象编程,本文继续介绍R语言基于S4的面向对象编程. S4对象系统具有明显的结构化特征,更适合面向对象的程序设计.Bioconductor社区,以S4对象系 ...
- R语言使用RMySQL连接及读写Mysql数据库 测试通过
R语言使用RMySQL连接及读写Mysql数据库 简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2 ...
- R语言中判断是否是整数。以及读写excel
今天接手一个重复性工作, 需要手工把产品运营们在excel里写的活动规则, 插入数据库表中.为了减少出错, 提高效率. 再加上最近刚刚学R语言, 就用R练练手, 自动生成mysql的sql语句. 一次 ...
随机推荐
- Altium Designer 生成Gerber文件
- itellij idea导入web项目并部署到tomcat
概述 主要分为项目配置和tomcat配置两大步骤. 一.项目配置 打开idea,选择导入项 选择将要打开的项目路径后,继续选择项目的原本类型(后续引导设置会根据原本的项目类型更新成idea的项目),此 ...
- 第一篇:白话tornado源码之一个脚本引发的血案
本系列博文计划: 1.剖析基于Python的Web框架Tornado的源码 2.为Python开发一个完善的MVC框架 首先将带着大家一起来剖析基于python编写的Web框架 tornado ,本着 ...
- 恢复 混淆后的 stacktrace 文件
./tools/proguard/bin/retrace.sh /Users/admin/Downloads/ProguardSample/app/build/outputs/mapping/rele ...
- win10没有新建文件夹
win10没有新建文件夹 win10系统,电脑点击右键没有新建文件夹选项. 工具/原料 win10 系统台式机 方法/步骤 电脑左下角搜素出输入:cmd 出现以下画面 在命令指示符 ...
- PHP无限极分类,多种方法|很简单,这里说的很详细,其它地方说的很不好懂
当你学习php无限极分类的时候,大家都觉得一个字"难"我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一 ...
- ThinkPHP3.1快速入门(1)基础
学习网址:http://www.thinkphp.cn/document/60.html
- JS Util1(basic)
1.
- 汽车ABS系统-第一周作业
ABS系统也成防抱死系统(Anti-lock Braking System),由罗伯特·博世有限公司所开发的一种在摩托车和汽车中使用,它会根据各车轮角速度信号,计算得到车速.车轮角减速度.车轮滑移率: ...
- leetcode 165
才一周没刷leetcode,手就生了,这个题目不难,但是完全AC还是挺费劲的. 题目描述: Compare two version numbers version1 and version2.If v ...