使用R读取xls与xlsx文件
在数据分析的过程中,第一步就是读取数据。
通常我们遇到的数据是csv格式或者txt格式的数据,这时我们使用系统自带的read.csv()
与read.table()
就可对这些格式的数据进行读取,只是读取时需注意编码格式。对于大型csv格式的数据(当然小数据也可以),可以使用data.table
包中的fread()
进行读取可以极大地提升读取速度。
但当遇到了Excel表生成的文件,读取起来相对就没有那么友好。之前的做法是简单粗暴地直接将我们的xls或xlsx文件利用Excel转化为csv文件后再进行读取,亦或者直接就用Python使用pandas库进行处理,然后就在Python中进行分析。
就是由于之前几次碰壁,使用网上推荐的一些包来进行读取,但都以失败告终。不过这次还是决定解决这个“顽疾”,对xls与xlsx这两种文件用R进行读取。
这几种方法主要参考:Read Excel files from R
1. ROOBC
这个包中有函数可以读取xlsx
格式的文件,但对于现在的我们而言,绝大多数人的电脑都不能使用这个包,因为其只能用于32位系统的Windows,所以这里不对这个包进行赘述。
2. xlsReadWrite
只能从GitHub中获得,CRAN上还没有,也不进行过多的赘述。
3. XLConnect
要依赖java,并且对于大数据情况读取非常慢。但实际上自己使用的时候,安装了java后,还是没法使用这个包。可能是某些步骤设置出现了问题。
若有童鞋对前面的三个包非常感兴趣,其详细的用法可以参考前面的参考网址。
4. xlsx
这个包是目前用的最多,也是R中可以说最好用的读取Excel文件的利器。
下面专门对其进行介绍。首先我们先说明这个包的依赖文件,不仅仅只是依赖R中的一些包,而是需要单独安装java。
1)装Java
安装链接:https://www.java.com/zh_CN/download/
我们按照指引选择默认路径安装,安装完成后,在C:\Program Files
下出现了Java文件,说明安装成功。(注:有些地方说需要将Java文件添加到全局变量中,后面的xlsx
包才能调取成功,但其实在这两天的实际安装中发现,自己的电脑并不需要,可能得看脸。)
2)装xlsx
安装xlsx
其实没什么好说的,就正常安装,然后它会自动将所需要的rjava
等依赖库,最后成功安装xlsx
库。
3)实际使用
最后我们就能直接使用啦,下面来讲一下其代码格式:
library(xlsx)
dat <- read.xlsx("data.xlsx", sheetName = "Sheet1", encoding = 'UTF-8')
一个标准的数据读取如上所示,下面将几个常用的参数:
-
"data.xlsx"
:表示读取数据的名称。 -
sheetName
:表示读取表中表的名称,通常第一个就是Sheet1
。 -
encoding
:这个在读取中文数据的时候是一定要加上的,不然读取数据会出现乱码。 -
sheetIndex
:表示读取文件中第几个表,sheetIndex = 1
表示读取文件中第一个表。需要特别注意:当文件中我们的表明为中文字时,不能使用类似sheetName = "表1"
进行读取,即使加上encoding = 'UTF-8'
也会出现读取错误,这时就需要使用sheetIndex
来进行读取。
上一篇: Go 生成(读取)xlsx文件
下一篇: 使用pandas轻松读取表格xlsx数据
推荐阅读
-
python使用xlrd模块读取xlsx文件中的ip方法
-
C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换(第二版-增加深度读取和更新功能)
-
C#中使用StreamReader实现文本文件的读取与写入
-
POI 通用 读取excle xls xlsx 文件
-
使用R读取xls与xlsx文件
-
POI读取xls文件和xlsx文件
-
Java读取Excel文件(支持xls,xlsx,多sheet)
-
使用宏将xlsx格式文件批量转为xls格式文件
-
java使用poi(XSSFWorkbook)读取excel(.xlsx)文件
-
PHP使用fopen与file_get_contents读取文件实例分享,_PHP教程