【发布时间】:2016-05-20 23:22:14
【问题描述】:
我正在使用 R 中的 venneuler 包来绘制我的数据集的维恩图,该数据集很大(总共 53.6 MB)。
如果这有帮助,我的代码是:
library(venneuler)
albert <- read.table("Albert/proliferating_v_senescent.nucleotides")
metilene <- read.table("Metilene_v0.2-5/proliferating_v_senescent.nucleotides")
albert <- as.character(albert[,1])
metilene <- as.character(metilene[,1])
elements <- c(albert,metilene)
sets <- c(rep("albert",times = length(albert)),c(rep("metilene",times=length(metilene))))
m <- data.frame(elements = elements, sets = sets)
rm(metilene)
rm(albert)
v <- venneuler(m)
运行此 R 脚本会引发错误:
Error in .jnew("edu/uic/ncdm/venn/data/VennData", as.character(combinations[, :
Java Exception <no description because toString() failed>.jnew("edu/uic/ncdm/venn/data/VennData", as.character(combinations[, 1]), as.character(combinations[, 2]))<S4 object of class "jobjRef">
我以前没用过java,也不知道是什么原因造成的。我在 Google 搜索中找不到此错误。
当我从 linux 终端运行它时,我得到一个完全不同的错误:
Error in .jnew("edu/uic/ncdm/venn/data/VennData", as.character(combinations[, :
java.lang.OutOfMemoryError: GC overhead limit exceeded
Calls: venneuler -> .jnew -> .External
我确实在Handling java.lang.OutOfMemoryError when writing to Excel from R 看到 this 错误,但我不明白如何在 R 中实现他们的解决方案。
即,类似“-Xmx2048M”的东西,但我不明白如何实现。
谢谢
【问题讨论】:
-
此示例不可重现,因为没有其他人可以访问您的数据。请在问题中包含可由其他人运行的示例数据。
-
在加载
venneuler之前使用rJava::.jinit(parameters="-Xmx2g")或类似的内存来提高内存。或者,您可以使用option(java.parameters="-Xmx2g")。一般来说,直接问作者,你会更快得到答案。
标签: java r out-of-memory rjava venn-diagram