【发布时间】:2020-11-23 19:17:02
【问题描述】:
我目前正在尝试使用 R 将(大,8.3 MB).xlsx 文件读入矩阵。我正在尝试使用 xlsx 包中的 read.xlsx 文件来执行此操作。 https://cran.r-project.org/web/packages/xlsx/index.html
我现在正尝试使用以下命令读取文件中一张工作表的内容:
sheetname<-read.xlsx("/Users/jinkinsonsmith/Downloads/Re _Introduction/filename.xlsx",sheetName='sheetname')
看起来这个命令应该可以将 xlsx 文件“文件名”中的工作表“工作表名”的内容读入向量“工作表名”。但是,相反,我收到此错误消息:
.jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : java.lang.OutOfMemoryError: Java 堆空间
似乎我不是第一个收到此错误消息的人(例如:How to deal with "java.lang.OutOfMemoryError: Java heap space" error?),但即使在阅读了我刚刚链接的另一篇文章之后,我仍然不清楚我应该如何解决这个问题错误。我的 MacBook Pro 长期以来一直存在磁盘空间不足并要求我删除一堆文件的问题,因此这可能是罪魁祸首,但显然我也有可能在 R 中存储了太多对对象的引用,而我没有使用时间更长,占用太多空间。在后一种情况下,我不知道如何删除任何不需要的引用。
【问题讨论】:
-
您可以在
64bits模式下更改为R。 -
您是否尝试过其他任何用于读取 XL 文件的软件包?也许是 excel.link、readexcel、readxlsb、XLCONNECT。 Javaheapspace 是 RAM,而不是磁盘。还可以考虑读取指定数量的行并为下一组行重复调用,等等。
-
尝试
openxlsx包中的read_xlsx。它不像包xlsx那样依赖java。 -
@PaulvanOppen 我假设您的意思是“read.xlsx”,而不是“read_xlsx”,它似乎是“readxl”包而不是“openxlsx”包的一部分。好消息:read.xlsx 成功了!
-
是的,你是对的:
read.xlsx