是否有一个函数,在RStudio中,在没有重新打开RStudio的情况下以64位模式或32位模式重新启动R控制台(或者如果无法避免,至少会自动重新打开它)?
我在使用时通常以32位运行,RODBC因此我可以从Access数据库中检索数据,但是仍然希望在仍然在RStudio中时将64位模式的功能用于所有其他任务.
您可以将希望使用 32 位可执行文件执行的代码部分保存到新脚本中。例如,我有一个名为 的脚本myscript.r,它将仅打印用于运行它的 R 可执行文件的版本(64 或 32 位):
cat(as.character(version[2]))
Run Code Online (Sandbox Code Playgroud)
当然,您可以将其替换为处理RODBC.
现在,以编程方式运行具有自定义可执行文件的脚本的主要方法是调用操作系统终端或shell 的命令。该命令应包含:
Rscript.exe中包含的文件)i386R_HOME的路径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
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令运行此脚本:
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"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我们正在从两个不同的可执行文件执行此脚本。在实践中,我建议将 ODBC 查询的结果保存到一个文件中,您可以在主x64R 会话中读取该文件。
如果您不知道其中一些术语,只需一点词汇:
术语“终端”或“外壳”通常可以互换使用。在 RStudio 中,如果单击console旁边的终端选项卡,您将能够输入将由shell处理的命令。
来源:终端、控制台和 cli、shell 命令、使用 r 编写脚本、这个 stackoverflow 答案