如何在 RStudio 中动态切换 R 体系结构

How switch R architectures dynamically in RStudio

提问人:Hack-R 提问时间:9/9/2014 最后编辑:Hack-R 更新时间:9/10/2014 访问量:708

问:

在 RStudio 中,有一个菜单,允许您在 下选择已安装的 R 版本/体系结构。ToolsGlobal Options

enter image description here

这很好,但我的问题是,顾名思义,它是一个全局选项,因此一旦您选择了不同的体系结构(或版本号),您就必须重新启动 RStudio,它适用于您的所有 RStudio 实例和项目。

这对我来说是一个问题,因为:

  • 在一个给定的项目中,我有一些脚本严格要求 32 位 R,因为它们与 32 位数据库(例如 Hortonworks 的 Hadoop)连接
  • 在同一项目中还有其他严格要求 64 位 R 的脚本,因为 (a) 某些软件包的可用性和 (b) 内存限制在我的操作系统上的 32 位 R 中非常小

我们可以称之为“问题#1”,这也是一个问题,因为我的某些项目需要特定的架构,尽管项目中的所有脚本都使用相同的架构(理论上应该是一个更容易解决的问题,我们可以称之为“问题#2”)。

如果我们能解决问题 #1,那么问题 #2 也就解决了。如果我们能解决问题 #2,即使问题 #1 没有解决,我仍然会更好。

我基本上是在问是否有人有黑客、变通方法或更好的工作流程来满足频繁切换架构和/或需要定期在不同的 R/RStudio 会话中同时为不同项目运行不同架构的需求。

我知道此功能可能代表 RStudio 的功能请求,如果由于这个原因这个问题不适合 StackOverflow,请告诉我,我会删除它。我只是想很多其他人可能都有这个问题,所以也许有人找到了解决方法/黑客?

R 体系结构 RSdiodio

评论


答:

4赞 Jonathan 9/10/2014 #1

没有简单的方法可以做到这一点,但有一些解决方法。您可以考虑通过调用从 R 的当前 bit-flavor 启动 R 的正确 bit-flavor,例如(未经测试的代码):system2Rscript.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 位方式运行代码。

另一个提示:如果在启动 RStudio 时按住 CTRL,则可以选择要在启动时启动的 R 风格和位数。如果您经常切换,这将为您节省一些时间。

评论

0赞 Hack-R 9/16/2014
谢谢你,@Jonathan。我同意可能没有简单的解决方案,所以我会接受这个作为 +1 的解决方案。干杯!