【问题标题】:rJava fails with toStrinrJava 使用 toString 失败
【发布时间】: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


【解决方案1】:

这里的解决方案是使用 gplots 包中包含的 venn 命令,它非常很容易工作。我不知道为什么 venneuler 不起作用。

【讨论】:

  • 你应该通过添加工作代码来完成这个答案。
猜你喜欢
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
相关资源
最近更新 更多