从R写入Excel时处理java.lang.OutOfMemoryError
该xlsx软件包可用于读取和写入R中的Excel电子表格。不幸的是,即使对于中等大小的电子表格,java.lang.OutOfMemoryError也可能会发生。尤其是, .jcall(“ RJavaTools”,“ Ljava / lang / Object;”,“ invokeMethod”,cl,中的错误: java.lang.OutOfMemoryError:Java堆空间 .jcall(“ RJavaTools”,“ Ljava / lang / Object;”,“ newInstance”,.jfindClass(class),中的错误: java.lang.OutOfMemoryError:超出了GC开销限制 (其他相关例外也是可能的,但很少见。) 在读取电子表格时,针对此错误提出了类似的问题。 导入大xlsx文件到R? 与CSV相比,使用Excel电子表格作为数据存储介质的主要优点是可以将多个工作表存储在同一个文件中,因此在这里我们考虑将一个数据帧列表写入每个工作表一个数据帧。此示例数据集包含40个数据帧,每个数据帧包含两列,每行最多200k行。它的大小设计得足以出现问题,但是您可以通过更改n_sheets和来更改大小n_rows。 library(xlsx) set.seed(19790801) n_sheets <- 40 the_data <- replicate( n_sheets, { n_rows <- sample(2e5, 1) data.frame( x = runif(n_rows), y = sample(letters, n_rows, replace = TRUE) ) }, …