gpt4 book ai didi

r - 设置 .libPaths() 以使用 Rscript.exe 从命令行运行 R 脚本

转载 作者:行者123 更新时间:2023-12-03 11:12:38 26 4
gpt4 key购买 nike

我正在尝试通过 Windows 命令提示符上的 BAT 文件运行 R 脚本。

这些脚本需要一些 R 包,例如 data.table , tidyR , 等等。

出于操作原因,所有必需的 R 包和依赖项(包括 data.table)都安装在 C:\Users\username\Documents\R\R-3.5.1\library .我不允许在这种环境中安装 RStudio。

当我尝试"C:\Program Files\R\R-3.5.1\bin\x64\Rscript.exe" script.R , 我收到类似的错误

Error in library(data.table) : there is no package called 'data.table' Execution halted



我如何设置 .libPaths通过命令提示符指向包的正确位置(即到 C:\Users\username\Documents\R\R-3.5.1\library )?

先感谢您。

最佳答案

免责声明:我不熟悉 R .

来自 R: Search paths :

The library search path is initialized at startup from the environment variable R_LIBS (which should be a colon-separated list of directories at which R library trees are rooted) followed by those in environment variable R_LIBS_USER. Only directories which exist at the time will be included.

By default R_LIBS is unset, and R_LIBS_USER is set to directory ‘R/R.version$platform-library/x.y’ of the home directory (or ‘Library/R/x.y/library’ for CRAN macOS builds), for R x.y.z.



environment variable可以用 set VARIABLE_NAME=YOUR_VALUE 创建批处理命令。

所以你的批处理文件应该是这样的:
cd /d "C:\INSERT_PATH_TO_DIRECTORY_CONTAINING_script.R"
set "R_LIBS=C:\Users\username\Documents\R\R-3.5.1\library"
"C:\Program Files\R\R-3.5.1\bin\x64\Rscript.exe" script.R

但是出于可移植性的原因(假设一位同事要求您提供脚本的副本或您的计算机死机),我建议将脚本、R 库和批处理文件放在一个目录中,例如 C:\Users\username\Documents\R .批处理文件 C:\Users\username\Documents\R\script.bat变成:
cd /d "%~dp0"
set "R_LIBS=%~dp0R-3.5.1\library"
"%PROGRAMFILES%\R\R-3.5.1\bin\x64\Rscript.exe" "%~dpn0.R"
%PROGRAMFILES%环境变量扩展到 program files 的完整路径文件夹, %~dp0 parameter扩展为保存批处理文件的目录的完整路径,以及 %~dpn0是一个没有扩展名的批处理文件完整路径。

请注意 %~dp0R-3.5.1不是打字错误,因为 %~dp0包括尾随反斜杠。

这样你就可以复制 C:\Users\username\Documents\RD:\Users\SOMEOTHERNAME\Documents\R并且脚本仍然会运行。

如果您创建脚本的另一个版本,只需复制批处理文件,使其与您的脚本具有相同的文件名,但 .bat扩展名而不是 .R并且它应该调用新的脚本——这在调试和分发脚本时被证明是非常方便的。

或者,如果您更愿意单独安装库,您可能需要使用 %HOMEDRIVE%%HOMEPATH%扩展为 C:\Users\username .

提取正确 Documents文件夹路径,以及 R安装路径是可能的,但需要读取注册表,因此有点复杂。

关于r - 设置 .libPaths() 以使用 Rscript.exe 从命令行运行 R 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53153917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com