用R读取excel

bla*_*ank 2 r

我试图考虑是否直接从R读取excel文件或者我应该先将它们转换为csv.我研究过阅读excel的各种可能性.我还发现,阅读excel可能有点像日期转换和数字列数据类型等.

XLConnect - 依赖于java
read.xslx - 大数据集的速度很慢
read.xslx2 - 快但需要使用colClasses命令来指定所需的列类
ODBC - 可能有转换问题
gdata - 依赖于perl

我正在寻找一个足够快的解决方案,至少有一百万行,并且数据转换问题最少.有什么建议??

编辑

所以最后我决定转换为csv然后读取csv文件,但现在我必须找出读取大型csv文件的最佳方法(至少有100万行)

我发现了read.csv.ffdf包,但这不允许我设置自己的colClass.特别是这个

setAs("character","myDate", function(from){ classFun(from) } )
colClasses =c("numeric", "character", "myDate", "numeric", "numeric", "myDate")
z<-read.csv.ffdf(file=pathCsv,  colClasses=colClassesffdf)
Run Code Online (Sandbox Code Playgroud)

这不起作用,我得到以下错误: -

ff出错(initdata = initdata,length = length,levels = levels,ordered = ordered,:vmode'list'未实现

我也知道RSQlite和ODBC功能,但不希望使用它.有没有解决上述错误或其他任何方式?

Jac*_*sey 5

从这个问题开始,Hadley Wickham发布了R包readxl,它包含了C和C++库,分别用于读取文件.xls.xlsx文件.这是对以前可能性的重大改进,但并非没有问题.它既快速又简单,但如果你有杂乱的数据,无论你选择哪种方法,都必须做一些工作.沿着这.csv条路走下去并不是一个糟糕的想法,但确实在您的分析中引入了一个手动步骤,并且依赖于您碰巧使用的任何版本的Excel,从而提供一致的CSV输出.