用R讀取外部的excel文件


今天找了好多包來快速讀取數量量比較大的excel包,但是總是出現OutOfMemoryError (Java): GC overhead limit exceeded,內存溢出報錯。找到了兩個R包可以解決該問題

目前找到三個包可以讀取excel數據。

1 ,讀取excel文件的包:xlsx包  只能讀取".xlsx"格式的包

install.packages("xlsx")

library(xlsx)

read.xlsx(file, sheetIndex, sheetName=NULL, rowIndex=NULL,
startRow=NULL, endRow=NULL, colIndex=NULL,
as.data.frame=TRUE, header=TRUE, colClasses=NA,
keepFormulas=FALSE, encoding="unknown", ...)

這個包只能讀取數據量不大的excel數據

2,XLConnect包

library("XLConnectJars")
library("XLConnect")

##連接excel文件

connect<-loadWorkbook("E:\\wang\\1.xlsx")

#讀取,A為Sheet名
readWorksheet (connect, 'A' )
此包只能讀取數據量不大的excel數據
 
前面兩個包可以在R的很多版本里面都可以用
 
3,readxl包   下載該包需要用R版本R version 3.2.5才能用,低於該版本的不能夠使用
install.packages("readxl")

library(readxl)
 x<-read_excel("E:\\wang\\1.xlsx")還可以讀取“xls”的excel文件,

其他參數可以自己查詢  ?read_excel()

此函數可以快速讀取excel的大量數據,且不會出現以上的內存溢出錯誤

 

4,openxlsx包

該包也能夠讀取大量的excel文件而不會出現內存溢出的錯誤,且該包可以在低版本的R中使用

install.packages("openxlsx")

library(openxlsx)

x<-read.xlsx("E:\\wang\\1.xlsx",1)

read.xlsx(xlsxFile, sheet = 1, startRow = 1, colNames = TRUE,
skipEmptyRows = TRUE, rowNames = FALSE, detectDates = FALSE,
rows = NULL, cols = NULL)

 

注意:在安裝好xlsx包之后,在安裝XLConnect包時可能會出現錯誤,由於xlsx可能把有些XLConnect包中的函數給屏蔽掉了,此時需要移除xlsx包,remove.packages("xlsx")即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM