开始一直使用xlsx包读取excel数据,该包基于java,但是在windows上总是无缘无故出bug
今天发现另一个读取excel数据的包gdata,该包基于perl,安装好perl并配置好perl的环境变量后即可使用,暂时未出现bug
gdata包(基于perl)
使用read.xls函数读取xls或xlsx表格数据,参数:
read.xls(xls, sheet=1, verbose=FALSE, pattern, na.strings=c("NA","#DIV/0!"),
..., method=c("csv","tsv","tab"), perl="perl")
- 该包首先把excel数据转为csv数据 (默认methode为csv)后,再读取转换成功的csv数据
- sheet指定读取的excel表单编号,也可以使表单的名称,默认读取第一个表单
- verbose表示是否显示详细读取信息,默认为不显示
- perl指定perl程序的地址,如果没有配置perl的环境变量,需要设置为perl.exe所在路径
- encoding编码,如果有中文字符,需要设置为encoding = “UTF-8”
- 常用设置:stringsAsFactors = FALSE设置不对字符串进行因子的转换
示例
xlsfile <- file.path(path.package('gdata'),'xls','iris.xls')
xlsfile
iris <- read.xls(xlsfile) # defaults to csv format
iris <- read.xls(xlsfile,method="csv") # specify csv format
iris <- read.xls(xlsfile,method="tab") # specify tab format
## Example specifying exact Perl path for default MS-Windows install of
## ActiveState perl
iris <- read.xls(xlsfile, perl="C:/perl/bin/perl.exe")
file="E:/r/qPCR/171004_data.xls"
data_test <- gdata::read.xls(file,
encoding = "UTF-8",
verbose=T,
stringsAsFactors=FALSE)