Странное взаимодействие между R-пакетом XLConnect и Choose.files()

Я наблюдаю следующее странное поведение:

Используя R-консоль (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() работает нормально (я просто нажал «Отмена»), но, очевидно, XLConnect не удалось загрузить из-за какой-то проблемы, связанной с JVM.

Теперь перезапускаем R-консоль и выдаем те же две команды в другом порядке:

> 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 загружается нормально, но вызов select.files() никогда не отображает средство выбора файла и возвращает «символ (0)» через несколько секунд. Когда я запускаю один и тот же код в R-Studio, все работает нормально в обоих случаях.

Я уже пытался увеличить пространство кучи Java (поскольку я нашел эту подсказку в некоторых других темах/форумах), но это не помогло.

Любые объяснения или советы, как решить эту проблему?


person user2567482    schedule 10.07.2013    source источник
comment
Моим первым шагом будет обновление R и пакетов.   -  person Roland    schedule 10.07.2013
comment
Спасибо, это сделало работу.   -  person user2567482    schedule 11.07.2013


Ответы (2)


Эта проблема, скорее всего, связана с изменением размера стека C в R 2.15.2 (увеличение до 64 МБ — также для 32-разрядных систем Win; см. 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 (где они устанавливают размер стека на своей стороне; на самом деле это было сделано в результате проблем, описанных с изменением размера стека C в R 2.15.2)
  • попробуйте установить размер стека Java вручную ПЕРЕД использованием/загрузкой любых пакетов, связанных с Java, в R; например параметры (java.parameters = "-Xss5m") или параметры (java.parameters = "-Xss10m")
person Martin Studer    schedule 10.07.2013
comment
Спасибо за ответ. Второй способ, который вы упомянули (RStudio устанавливает размер стека), может быть также причиной того, что многие из моих сценариев работают безупречно в RStudio, но терпят неудачу по странным причинам (или из-за нехватки памяти) в RConsole? - person user2567482; 11.07.2013

Установка версии 3.02 R решила эту же проблему для меня.

person user2948714    schedule 10.12.2013