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) 读取文件
最后我们就能直接使用啦,下面来讲一下其代码格式:
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) 写入文件
write.xlsx(iris, file = "iris.xlsx", row.names = FALSE, sheetName = "Sheet1")想必会有人在这里踩坑,大家应该注意到有一个append的参数,是否认为将其值设置为TRUE的话,就可以多次向表中写入数据?那就真踩坑了。查看xlsx包中的注释也很模糊:
> # a logical value indicating if x should be appended to an existing file.
> # 翻译:一个逻辑值,指示是否应该将x附加到现有文件中。附加到现有文件中,实际上是增加新的sheet,而非在原有sheet工作表中继续增加数据。如需在同一个sheet工作表中多次增加数据。
readxl包
1) 安装readlx包
> install.packages("readxl")2) 读取文件
> library(readxl)
Warning message:
程辑包‘readxl’是用R版本3.4.3 来建造的
#读取文件
> read_excel("C:\\Users\\lenovo-pc\\Desktop\\竹林施肥量计算.xls",sheet=1)R语言读写xls,xlsx文件
https://blog.fulequn.online/2020/09/Article202009171/