R gdata包之雷区分析

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文件


test1.png

结果如下:


result1.png

以及


test2.png

结果如下:


result2.png

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

再看一个实际的例子


test3.png

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


test4.png

看看结果如何:
result4.png

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


test5.png

看看结果如何:
result5.png

完美啊!
从这个案例我们可以证明上面那一点,就是gdata读英文的xls数据没有任何问题,但对中文的支持很差

ps:readxl包里面那个read_xls可以读,但有较长的warning

推荐阅读更多精彩内容