gdata包
gdata包中的read.xls函数是读取xls文件其中的一种方法。而使用这个函数并不方便,直接使用read.xls基本会报错。如果要使用这个包的话,请看看下面有没有你遇到的两个雷区。
-
需要下载perl,并加入参数 perl = "(path of perl)"
否则会报如下错误:
error.png
即“Error in findPerl(verbose = verbose) : perl executable not found. Use perl= argument to specify the correct path.”
ex. perl = "C:\Perl64\bin\perl5.24.3.exe"
- 对中文标题支持非常差,即使已经加入 encoding = "UTF-8" 参数
ex.
library(gdata)
pl = "C:\\Perl64\\bin\\perl5.24.3.exe"
raw_data = read.xls("C:\\Users\\henchli\\Desktop\\多元统计第一次报告\\123.xlsx", header = TRUE, sheet = 1, perl = pl, encoding = "UTF-8")
用以上gdata代码尝试以下两个xls文件

结果如下:

以及

结果如下:

你会发现第一个文件完美读入,但第二个文件对标题的识别就有很大的问题
再看一个实际的例子

这种一看标题全是中文的,不用想了,gdata的read.xls肯定读不进去。把标题改成英文的试试:

看看结果如何:

还是不行,这时候我猜测还是中文字符的问题,那不如把中文那两列删掉:

看看结果如何:

完美啊!
从这个案例我们可以证明上面那一点,就是gdata读英文的xls数据没有任何问题,但对中文的支持很差
ps:readxl包里面那个read_xls可以读,但有较长的warning
网友评论