我想着想直接從R讀取excel文件還是應該先將它們轉換爲csv。我研究了閱讀excel的各種可能性。我還發現,閱讀Excel中可能有它的缺點,如日期和數字列的數據類型等閱讀優秀與R
XLConnect的轉換 - 依賴於Java
read.xslx - 慢於大型數據集
read.xslx2 - 快,但需要使用colClasses命令來指定所需的列類
ODBC - 可能轉換的問題
GDATA - 依賴於Perl的
我要尋找一個解決方案,這將是足夠快以最小的數據轉換問題一百萬ATLEAST行。有什麼建議麼??
編輯
所以最後我決定轉換爲csv,然後讀取CSV文件,但現在我必須找出閱讀了大量的CSV文件(用於至少一百萬行)的最佳方式
我發現了關於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)
這不工作,我得到以下錯誤: - 在FF
錯誤(initdata = initdata,長度=長度,水平=水平, 下令=下令,:VMODE 「清單」未實施
我也是知道的RSQlite與ODBC功能,但不希望使用它。是否有上述錯誤的溶液或解決這個任何其他方式?
只是爲了澄清,你在談論'.xlsx'還是'.xls'文件格式?它們本質上非常不同,但都是Excel文件。 – thelatemail
您可能需要編寫Perl/Python/C++代碼來執行從奇數日期格式到as.Date()識別的「標準」日期格式的轉換。或者說服'read.csv.ffdf()'的作者增加這個能力,或者自己破解這些代碼......它也許值得看看'data.table :: fread'(不確定,但可能值得一看)...或者,最簡單的,你可以用'character'讀取日期,然後轉換它們。 –
我看過data.table :: fread,但它仍在開發中,不支持colClasses。我還考慮過將日期閱讀爲字符,然後轉換它們,但是正在尋找其他的東西。 – blank