提问人:Hack-R 提问时间:9/9/2014 最后编辑:Hack-R 更新时间:9/10/2014 访问量:708
如何在 RStudio 中动态切换 R 体系结构
How switch R architectures dynamically in RStudio
问:
在 RStudio 中,有一个菜单,允许您在 下选择已安装的 R 版本/体系结构。Tools
Global Options
这很好,但我的问题是,顾名思义,它是一个全局选项,因此一旦您选择了不同的体系结构(或版本号),您就必须重新启动 RStudio,它适用于您的所有 RStudio 实例和项目。
这对我来说是一个问题,因为:
- 在一个给定的项目中,我有一些脚本严格要求 32 位 R,因为它们与 32 位数据库(例如 Hortonworks 的 Hadoop)连接
- 我在同一项目中还有其他严格要求 64 位 R 的脚本,因为 (a) 某些软件包的可用性和 (b) 内存限制在我的操作系统上的 32 位 R 中非常小
我们可以称之为“问题#1”,这也是一个问题,因为我的某些项目需要特定的架构,尽管项目中的所有脚本都使用相同的架构(理论上应该是一个更容易解决的问题,我们可以称之为“问题#2”)。
如果我们能解决问题 #1,那么问题 #2 也就解决了。如果我们能解决问题 #2,即使问题 #1 没有解决,我仍然会更好。
我基本上是在问是否有人有黑客、变通方法或更好的工作流程来满足频繁切换架构和/或需要定期在不同的 R/RStudio 会话中同时为不同项目运行不同架构的需求。
我知道此功能可能代表 RStudio 的功能请求,如果由于这个原因这个问题不适合 StackOverflow,请告诉我,我会删除它。我只是想很多其他人可能都有这个问题,所以也许有人找到了解决方法/黑客?
答:
没有简单的方法可以做到这一点,但有一些解决方法。您可以考虑通过调用从 R 的当前 bit-flavor 启动 R 的正确 bit-flavor,例如(未经测试的代码):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 位方式运行代码。
另一个提示:如果在启动 RStudio 时按住 CTRL,则可以选择要在启动时启动的 R 风格和位数。如果您经常切换,这将为您节省一些时间。
评论