|
從miRTarBase數(shù)據(jù)庫上下載了經(jīng)試驗驗證的miRNA靶基因信息,.xlsx后綴文件,也就是常說的excel文件,文件大小23.5M。 在使用xlsx包讀取該文件時報錯: Error in .jcall('RJavaTools', 'Ljava/lang/Object;', 'invokeMethod', cl, :java.lang.OutOfMemoryError: Java heap space
如字面意思,內(nèi)存不足,但電腦還有超過3G的內(nèi)存空間... 
方法1: 為其分配更多的內(nèi)存 https:///questions/34624002/r-error-java-lang-outofmemoryerror-java-heap-space 使用 options 函數(shù)修改設(shè)置。注意,該命令需要在加載 rJava 或 xlsx 包之前執(zhí)行,故推薦重啟R,然后運行: options(java.parameters = '-Xmx8000m')
p_load(xlsx)
此時再讀取'.xlsx'文件則不會報錯,但是讀取文件時仍需要花費大量時間和內(nèi)存資源,且不一定能順利解決問題! 方法2: 打開'.xlsx'文件,另存為'.csv'格式,再使用 read.csv 函數(shù)進(jìn)行數(shù)據(jù)讀取! database = read.csv('filename.csv', h = T)
方法3: 使用readxl包中的 read_excel 函數(shù),根據(jù)文件名后綴自行判斷是 .xlsx 還是 .xls 文件并相應(yīng)讀?。?/p> p_load(readxl)
read_excel('filename.xlsx', sheet = 1, col_names = T)
相對來說,方法3的執(zhí)行更簡便、速度較快、且占用資源少,推薦使用! 更多實用方法歡迎留言
|