gpt4 book ai didi

r - 如果无法安装R软件包,如何使install.packages返回错误?

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

如果无法安装软件包,则install.packages()返回警告(例如,如果不可用);否则,它会返回警告。例如:

install.packages("notapackage")

( EDIT :无论软件包无法安装的原因如何,我都想抛出一个错误,而不仅仅是这个缺少软件包的示例)。

我正在脚本中运行 install.packages命令,我希望它触发适当的错误并退出执行。我没有在 install.packages中看到明显的选项来处理此行为。有什么建议么?

最佳答案

刚刚为我自己解决了这个问题,我注意到install.packages()会导致调用library(thepackage)以查看其可用性。

我制作了一个R脚本,用于安装给定的软件包,在每个脚本上使用library来查看其是否可加载,如果不是,则以非0状态调用quit

我称它为install_packages_or_die.R

#!/usr/bin/env Rscript

packages = commandArgs(trailingOnly=TRUE)

for (l in packages) {

install.packages(l, dependencies=TRUE, repos='https://cran.rstudio.com/');

if ( ! library(l, character.only=TRUE, logical.return=TRUE) ) {
quit(status=1, save='no')
}
}

在Dockerfile中像这样使用它。我将它们分为有用的块,以尝试合理利用Docker构建缓存。
ADD install_packages_or_die.R /

RUN Rscript --no-save install_packages_or_die.R profvis devtools memoise

RUN Rscript --no-save install_packages_or_die.R memoise nosuchpackage

免责声明:我目前根本不认为自己是R程序员,因此可能会有更好的方法来做到这一点。

关于r - 如果无法安装R软件包,如何使install.packages返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244530/

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