Как динамически переключать архитектуры 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 и битность для запуска при запуске. Это сэкономит вам время, если вы много переключаетесь.