gpt4 book ai didi

r - 从 RProfile.site 文件安装包

转载 作者:行者123 更新时间:2023-12-04 11:37:42 27 4
gpt4 key购买 nike

我之前问过这个问题,但我仍然无法让它工作。我正在尝试在启动 R 时安装自定义包。我们现在编写的许多代码都可供用户编辑。为了尝试保护代码,我打包了生产级代码并让用户在启动期间将其安装在他们的机器上。

但是,当我尝试在 RProfile.site 文件中安装包时,程序进入循环并且 R 不断地反复启动。我注意到包的锁定文件与包一起创建在 R 的库文件夹中。

这是我添加到站点文件中的代码:

if(length(grep("customPackage", installed.packages()[,1]))==0) { 
install.packages("customPackage", repos=NULL, type="source")
}

当我在启动 R 后尝试运行此代码(不更改站点文件)时,它会完美地安装包并继续。但是,当我尝试通过 RProfile 文件执行此操作时,就会出现问题。

上次我尝试解决这个问题(https://stackoverflow.com/questions/10610067/installing-packages-upon-starting-r-session)时,我认为 Justin 关于使用 if 语句检查包的建议可以解决这个问题。但这似乎只解决了我从 CRAN 安装的包的问题,​​而不是自定义包。

如有任何帮助,我们将不胜感激!

最佳答案

我不明白你为什么要这样做。让他们将他们的 .libPaths 指向同一个地方。即代替 install.packages(...),只需在 Rprofile.site 中添加一行

.libPaths('/path/to/common/libraries')
require("commonPackage")

您可以做的另一件事是进行 system 调用。我不太了解在 Windows 下安装软件包,但在类似 Unix 的系统上,除了使用 install.packages 之外,您还可以这样做:

system("R --vanilla CMD INSTALL customPackage")

除其他外,--vanilla 标志导致 R 在不使用 Rprofile.site 文件的情况下启动(您的问题是 R 启动时正在读取 Rprofile.site 文件,但是Rprofile.site 文件告诉 R 安装一个需要启动 R 的包,R 又会读取你的 Rprofile.site 文件......等等)。据推测,R --no-site-file INSTALL customPackage 也可以工作。

编辑

经过咨询this SO answer ,看起来你可以在 Windows 上做这样的事情(假设你已经安装了 Rtools ),尽管我还没有测试过。

system("Rcmd --vanilla INSTALL customPackage")

关于r - 从 RProfile.site 文件安装包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11530800/

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