当您尝试在R中安装软件包并且没有默认库路径的访问权限时,R会询问您:



但是,如果您正在运行Rscript,则这些消息将不会显示,并且安装将失败。我可以预定义一个特定的路径并指示install.packages使用它,但是我不想创建一个特定于此Rscript的附加库路径。我只想使用默认的个人库。有没有一种方法可以在不需要交互的情况下强制创建个人库?

最佳答案

您可以使用Sys.getenv("R_LIBS_USER")来获取本 map 书馆的搜索位置。
这是我最终所做的,似乎正在运行(最困难的部分是测试解决方案,因为问题仅在您第一次尝试安装软件包时发生):

# create local user library path (not present by default)
dir.create(path = Sys.getenv("R_LIBS_USER"), showWarnings = FALSE, recursive = TRUE)
# install to local user library path
install.packages(p, lib = Sys.getenv("R_LIBS_USER"), repos = "https://cran.rstudio.com/")
# Bioconductor version (works for both Bioconductor and CRAN packages)
BiocManager::install(p, update = FALSE, lib = Sys.getenv("R_LIBS_USER"))
正如@hrbrmstr在评论中指出的那样,强制安装软件包可能不是一个好主意,因此使用后果自负。

关于r - 在R中自动创建个人资料库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39879424/

10-13 02:05