Как динамически переключать архитектуры R в RStudio

В RStudio есть Tools меню, которое позволяет выбрать установленную версию / архитектуру R под Global Options,

введите описание изображения здесь

Это здорово, но моя проблема в том, что, как следует из названия, это глобальная опция, поэтому, когда вы выбираете другую архитектуру (или номер версии), вам нужно перезапустить RStudio, и она применяется ко всем вашим экземплярам RStudio и проекты.

Это проблема для меня, потому что:

  • У меня есть несколько сценариев в рамках данного проекта, для которых строго требуется 32-разрядная версия R из-за того, что они взаимодействуют с 32-разрядными базами данных, например Hadoop от Hortonworks.
  • У меня есть другие сценарии в том же проекте, для которых строго требуется 64-битное R, из-за (a) доступности определенных пакетов и (b) предельно малого размера памяти в 32-битном R на моей ОС

который мы можем назвать "Проблема № 1", и это также проблема, потому что у меня есть определенные проекты, которые требуют определенной архитектуры, хотя все сценарии в проекте используют одну и ту же архитектуру (что теоретически должно быть проще для решения проблемы, которую мы можем вызвать "Выпуск № 2").

Если мы сможем решить проблему № 1, то проблема № 2 также будет решена. Если мы сможем решить проблему № 2, мне все равно будет лучше, даже если проблема № 1 не решена.

Я в основном спрашиваю, есть ли у кого-нибудь взлом, обходной путь или лучший рабочий процесс для решения этой проблемы, связанной с частым переключением архитектур и / или необходимостью одновременного запуска разных архитектур в разных сеансах R/RStudio для разных проектов.

Я знаю, что эта функциональность, вероятно, будет представлять запрос функции для RStudio, и если по этой причине этот вопрос не подходит для Stackru, дайте мне знать, и я его удалю. Я просто подумал, что многие другие люди, вероятно, имеют эту проблему, так что, может быть, кто-то нашел обходной путь / взломать?

1 ответ

Решение

Нет простого способа сделать это, но есть некоторые обходные пути. Один из них, который вы могли бы рассмотреть, - запуск правильного набора битов R из текущего набора битов R через system2 ссылающееся Rscript.exeНапример, (непроверенный код):

source32 <- function(file) {
  system2("C:\\Program Files\\R\\R-3.1.0\\bin\\i386\\Rscript.exe", normalizePath(file)) 
}
...
# Run a 64 bit script
source("my64.R")

# Run a 32 bit script
source32("my32.R")

Конечно, это на самом деле не дает 32-битной интерактивной сессии столько, сколько возможность выполнять код как 32-битную.

Еще один совет: если вы удерживаете нажатой клавишу CTRL во время запуска RStudio, вы можете выбрать аромат R и битность для запуска при запуске. Это сэкономит вам время, если вы много переключаетесь.

Другие вопросы по тегам