read.xlsx需要很长时间和大量内存

read.xlsx需要很长时间和大量内存,r,macos,memory,rjava,r-xlsx,R,Macos,Memory,Rjava,R Xlsx,我正在尝试将一个.xlsx文件加载到R中,该文件只有一张纸,大小约为31MB 我运行以下命令 options( java.parameters = "-Xmx6g" ) require(xlsx) yt = read.xlsx("big_spreadsheet.xlsx",1) 我什么也得不到。我的系统监视器程序显示分配的内存慢慢填满,然后一直保持满。我已经几个小时没有让它运行了,但是十分钟应该足够了,特别是当我可以加载到数字中(我在Mavericks上)并将它保存为CSV时 是的,我有超过6

我正在尝试将一个.xlsx文件加载到R中,该文件只有一张纸,大小约为31MB

我运行以下命令

options( java.parameters = "-Xmx6g" )
require(xlsx)
yt = read.xlsx("big_spreadsheet.xlsx",1)
我什么也得不到。我的系统监视器程序显示分配的内存慢慢填满,然后一直保持满。我已经几个小时没有让它运行了,但是十分钟应该足够了,特别是当我可以加载到数字中(我在Mavericks上)并将它保存为CSV时

是的,我有超过6GB的内存。2 GB似乎不够,会产生以下错误:

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.OutOfMemoryError: Java heap space
但是,我犯了一个错误,让
rJava
包安装自己的Java版本。我在事后下载了JDK 8,但我不知道如何检查是否正在使用它


那么,为什么加载一个31MB的文件需要6GB的RAM(失败)?我能解决这个问题吗?

我从来没让它工作过。我最近一直在使用该软件包从Excel电子表格中读取数据,它没有Java依赖性,而且似乎工作得很好。

我从来没有让它工作过。我最近一直在使用该软件包从Excel电子表格中读取数据,该软件包没有Java依赖性,似乎工作正常。

是的,请使用readxl软件包,因为xlsx软件包需要花费大量时间加载Java,而且在读取仅为2mb大小的文件时,很可能会返回错误

它的使用非常简单,只需编写

   read_excel("path")

是的,请使用readxl包,因为xlsx包需要花费大量时间加载的java,而且在读取仅为2mb大小的文件时,很可能会返回错误

它的使用非常简单,只需编写

   read_excel("path")

对xlsx的R支持非常可怕。除非您有很好的理由直接读取xlsx,否则在Excel中将文件重新保存为.csv/等效文件会更容易、更快、更高效。我以前遇到过这个问题,并使用Excel ODBC驱动程序使用了
RODBC
。您是否尝试过XLconnect库而不是xlsx?我在这方面有很好的经验。对xlsx的R支持非常可怕。除非您有很好的理由直接读取xlsx,否则在Excel中将文件重新保存为.csv/等效文件会更容易、更快、更高效。我以前遇到过这个问题,并使用Excel ODBC驱动程序使用了
RODBC
。您是否尝试过XLconnect库而不是xlsx?我在这方面有很好的经验。