欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用R读取xls与xlsx文件

程序员文章站 2022-07-13 13:15:37
...

在数据分析的过程中,第一步就是读取数据

通常我们遇到的数据是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来进行读取。