R语言读写xls,xlsx文件

引言

R语言读写excel文件时,可以使用多个package(readxl,xlsx,XLConnect,openxlsx等)

其中,ROOBC包只能应用于32位的windows系统,xlsReadWrite只能从GitHub中获取,CRAN中不能直接获取,XLConnect需要依赖于java,且对大数据情况读取非常慢,所以我们使用xlsx,readxl,XLConnect来进行Excel类文件的读取。

xlsx包

使用步骤

1) 装Java

安装链接:https://www.java.com/zh_CN/download/

我们按照指引选择默认路径安装,安装完成后,在C:\Program Files下出现了Java文件,说明安装成功。(注:有些地方说需要将Java文件添加到全局变量中,后面的xlsx包才能调取成功,但其实在这两天的实际安装中发现,自己的电脑并不需要,可能得看脸。)

2) 装xlsx

使用install.package()或者在RStudio中直接安装。

3) 读取文件

最后我们就能直接使用啦,下面来讲一下其代码格式:

1
2
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来进行读取。

4) 写入文件

1
write.xlsx(iris, file = "iris.xlsx", row.names = FALSE, sheetName = "Sheet1")

想必会有人在这里踩坑,大家应该注意到有一个append的参数,是否认为将其值设置为TRUE的话,就可以多次向表中写入数据?那就真踩坑了。查看xlsx包中的注释也很模糊:

1
2
> # a logical value indicating if x should be appended to an existing file. 
> # 翻译:一个逻辑值,指示是否应该将x附加到现有文件中。

附加到现有文件中,实际上是增加新的sheet,而非在原有sheet工作表中继续增加数据。如需在同一个sheet工作表中多次增加数据。

readxl包

1) 安装readlx包

1
> install.packages("readxl")

2) 读取文件

1
2
3
4
5
6
7
8
9
> library(readxl)

Warning message:

程辑包‘readxl’是用R版本3.4.3 来建造的

#读取文件

> read_excel("C:\\Users\\lenovo-pc\\Desktop\\竹林施肥量计算.xls",sheet=1)

R语言读写xls,xlsx文件
https://fulequn.github.io/2020/09/Article202009171/
作者
Fulequn
发布于
2020年9月17日
许可协议