如何查找32位与64位不同版本R的R_Home环境变量?
如何获取不同版本R的安装路径并自动化运行脚本
从RStudio配置文件读取已检测的R版本路径
RStudio会自动扫描系统中安装的所有R版本,并将版本信息保存在本地配置文件中,你可以直接读取该文件获取对应版本的安装路径:
配置文件路径
- Windows系统:
%APPDATA%\RStudio\rstudio-prefs.json - macOS/Linux系统:
~/.config/rstudio/rstudio-prefs.json
用R读取并提取目标路径
安装jsonlite包后,运行以下代码即可提取32位R 3.6.1和64位R 4.2.1的路径:
# 安装依赖包(仅需执行一次) install.packages("jsonlite") # 读取配置文件 library(jsonlite) prefs_path <- if (.Platform$OS.type == "windows") { file.path(Sys.getenv("APPDATA"), "RStudio", "rstudio-prefs.json") } else { file.path(Sys.getenv("HOME"), ".config", "rstudio", "rstudio-prefs.json") } r_versions <- fromJSON(prefs_path)$rversions # 提取目标版本的安装路径 r32_path <- r_versions[r_versions$version == "3.6.1" & r_versions$arch == "i386", "path"] r64_path <- r_versions[r_versions$version == "4.2.1" & r_versions$arch == "x86_64", "path"]
手动指定默认安装路径(可选)
如果你的R是默认路径安装,可直接使用以下通用路径:
- 32位R 3.6.1(Windows):
C:\Program Files (x86)\R\R-3.6.1\bin\i386\R.exe - 64位R 4.2.1(Windows):
C:\Program Files\R\R-4.2.1\bin\x64\R.exe - macOS:32位R 3.6.1路径为
/Library/Frameworks/R.framework/Versions/3.6/Resources/bin/i386/R,64位R 4.2.1路径为/Library/Frameworks/R.framework/Versions/4.2/Resources/bin/R - Linux:对应版本路径通常在
/usr/lib/R/bin/R的版本子目录下
自动化运行脚本
拿到路径后,可通过以下方式调用对应版本的R执行脚本:
用system()命令
# 运行32位脚本 system(paste0('"', r32_path, '" CMD BATCH "path/to/your/32bit_script.R"')) # 运行64位脚本 system(paste0('"', r64_path, '" CMD BATCH "path/to/your/64bit_script.R"'))
用processx包(更灵活,支持捕获输出)
install.packages("processx") library(processx) # 运行32位脚本 run(r32_path, args = c("CMD", "BATCH", "path/to/your/32bit_script.R")) # 运行64位脚本 run(r64_path, args = c("CMD", "BATCH", "path/to/your/64bit_script.R"))
内容的提问来源于stack exchange,提问作者user7964529
相关产品推荐
相关产品推荐

