R, RStudio: программно переключаться между 32-битной и 64-битной версиями R

Есть ли функция, которая в RStudio перезапускает консоль R в 64-битном режиме или 32-битном режиме без повторного открытия RStudio (или, по крайней мере, автоматически повторного открытия, если этого нельзя избежать)?

Я обычно использую 32-битную версию при использовании RODBC так что я могу получать данные из базы данных Access, но в противном случае хотел бы использовать возможности 64-битного режима для всех других задач, оставаясь в RStudio.

1 ответ

Вы можете сохранить часть своего кода, которую хотите выполнить, используя 32-битный исполняемый файл, в новый скрипт. Например, у меня есть скрипт под названиемmyscript.rкоторый просто напечатает, какая версия исполняемого файла R (64 или 32-разрядная), которая использовалась для его запуска:

      cat(as.character(version[2]))

Конечно, вы можете заменить это частью кода, связанной сRODBC.

В настоящее время основным способом программного запуска сценария с пользовательским исполняемым файлом является вызов команды в терминал или оболочку ОС . Эта команда должна содержать:

  • Какой исполняемый файл вызывать, в нашем случае R 32-битный (файлRscript.exeфайл, содержащийся вi386папка вашегоR_HOMEкаталог)
  • Аргументы, принимаемые этим исполняемым файлом, например путь к сценарию R, который мы хотим запустить с помощью этого исполняемого файла.

Путьmyscriptявляется"c:/gp/trash/myscript.r", а мой 32-битный исполняемый файл R

      paste0(Sys.getenv("R_HOME"), "/bin/i386/Rscript.exe)
C:/PROGRA~1/R/R-40~1.4/bin/i386/Rscript.exe

Я могу запустить этот скрипт, используя:

      myscript <- "c:/gp/trash/myscript.r"
output <- system(paste0(Sys.getenv("R_HOME"), "/bin/x64/Rscript.exe ", myscript), wait = FALSE, invisible = FALSE, intern = T)
output
[1] "x86_64"

output_32 <- system(paste0(Sys.getenv("R_HOME"), "/bin/i386/Rscript.exe ", myscript), wait = FALSE, invisible = FALSE, intern = T)
output_32
[1] "i386"

Как видите, мы выполняем этот скрипт из двух разных исполняемых файлов. На практике я бы предложил сохранять результаты ваших ODBC-запросов в файл, который вы можете прочитать в своем главномx64Р сессия.


Немного словарного запаса, если вы не знаете некоторых из этих терминов:

Термины «терминал» или «оболочка» часто используются взаимозаменяемо. В RStudio, если щелкнуть вкладку терминала рядом с консолью , вы сможете вводить команды , которые будут обрабатываться оболочкой .

  • Команды оболочки — это инструкции, которые предписывают системе выполнить какое-либо действие.
  • Оболочка это пользовательский интерфейс для доступа к службам операционной системы.
  • Терминал — это программа-оболочка, которая запускает оболочку и позволяет нам вводить команды .

источники: терминал, консоль и cli , команды оболочки , скрипты с r, этот ответ stackoverflow

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