我观察到以下奇怪的行为:
使用 R-console(2.15.2,Windows 7,32 位),我得到:
> choose.files() # works fine here
character(0)
> library(XLConnect)
Lade nötiges Paket: XLConnectJars
Lade nötiges Paket: rJava
Error : .onLoad in loadNamespace() für 'XLConnectJars' fehlgeschlagen, Details:
Aufruf: .jinit()
Fehler: Cannot create Java virtual machine (-4)
Zusätzlich: Warnmeldung:
Paket ‘rJava’ wurde unter R Version 2.15.3 erstellt
Fehler: Paket ‘XLConnectJars’ konnte nicht geladen werden
choose.files() 调用工作正常(我只是单击“取消”),但显然由于某些 JVM 相关问题无法加载 XLConnect。
现在,重新启动 R-console 并以不同的顺序发出相同的两条命令:
> library(XLConnect)
Lade nötiges Paket: XLConnectJars
Lade nötiges Paket: rJava
XLConnect 0.2-4 by Mirai Solutions GmbH
http://www.mirai-solutions.com ,
http://miraisolutions.wordpress.com
Warnmeldung:
Paket ‘rJava’ wurde unter R Version 2.15.3 erstellt
> choose.files() # returns after a few seconds without ever displaying a file choser
character(0)
因此 XLConnect 包加载正常,但 choose.files() 调用从不显示文件选择器并在几秒钟后返回“字符 (0)”。 当我在 R-Studio 中运行相同的代码时,两种方式都运行良好。
我已经尝试增加 Java 堆空间(因为我在其他一些线程/论坛中发现了这个提示)但它没有帮助。
关于如何解决该问题的任何解释或提示?
最佳答案
这个问题很可能与 R 2.15.2 对 C 堆栈大小的更改有关 (增加到 64MB - 也适用于 Win 32 位系统;参见 https://stat.ethz.ch/pipermail/r-announce/2012/000557.html)。这也解释了为什么您在 R 2.15.3 中观察到该问题,但在 R 2.15.0 中却没有。
“增加 C 堆栈大小”问题也是讨论的问题 在https://stat.ethz.ch/pipermail/r-devel/2013-January/065576.html和 在 RStudio 支持论坛上。
解决问题的可能方法:
- 使用 R 的最新版本(R 3.0+;推荐),或者使用早期版本(例如 R 2.15.0;不推荐)
- 使用最近/最新版本的 RStudio(他们在其中设置堆栈大小 在他们的尽头;这实际上是由于描述的问题而完成的 随着 R 2.15.2 中 C 堆栈大小的变化)
- 尝试在使用/加载任何之前手动设置 java 堆栈大小 R中Java相关包;例如选项(java.parameters =“-Xss5m”)或 选项(java.parameters = "-Xss10m")
关于java - R 包 XLConnect 和 choose.files() 之间的奇怪交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565256/