r - R包中的非标准遥控器包INLA
问题描述
我有一个需要INLA的包,它不是托管在 CRAN 或标准 GitHub 存储库上。有多个 SO 问题详细说明了如何在个人机器上安装包,例如this,甚至提到它作为包中的依赖项。
通常建议在个人计算机上安装的两种方式是:
直接来自 INLA 网站
install.packages("INLA",repos=c(getOption("repos"),INLA="https://inla.r-inla-download.org/R/stable"), dep=TRUE)
来自 GitHub 主机
devtools::install_github(repo = "https://github.com/hrue/r-inla", ref = "stable", subdir = "rinla", build = FALSE)
Remotes:
现在,这些对于个人机器来说很好,但在说明文件部分中不起作用。
如果我们这样做url::https://inla.r-inla-download.org/R/stable
,则会给出文件扩展名无法识别的错误。
Error: Error: Failed to install 'unknown package' from URL:
Don't know how to decompress files with extension
如果我们这样做github::hrue/r-inla
,我不知道如何传递(或者甚至可能) DESCRIPTION 文件中的ref
、subdir
和build
参数。
以前的软件包使用托管在 GitHub 上的 INLA 代码的只读镜像,仅用于此目的,在此repo中,然后仅使用github::inbo/INLA
. 但是,此存储库已过时。
当前解决方案
我正在做的是直接引用主网页上托管的 tarball。
url::https://inla.r-inla-download.org/R/stable/src/contrib/INLA_21.02.23.tar.gz
该解决方案有效,并通过 CI 以及机器能够从那里安装和加载。唯一的问题是我需要定期更新这个 tarball 的静态链接,并且更愿意参考稳定的构建,或者直接从上面的 INLA 网站,或者hrue/inla
通过其他参数传递的 repo。直接引用这些链接还有一个好处是,当我的包重新安装在一台机器上时,它会识别该机器上是否安装了最新版本的 INLA。有没有办法在DESCRIPTION文件中实现这一点?
解决方案
这不是一个完美的答案,但也许你可以做的是从新的 github 存储库中添加zip
稳定分支的 url :-INLA
INLA
url::https://github.com/hrue/r-inla/archive/refs/heads/stable.zip
因此,这将始终安装软件包的最新稳定版本。
推荐阅读
- docker - 如何管理不同环境(Dev、Test 和 Prod)的 Docker 镜像和存储库?
- python - 如何将从流中读取的原始图像字节转换为形状有效的张量以执行 Conv2d?
- react-native - 如何在没有任何插件的情况下创建一对一的聊天页面设计
- mariadb - MariaDB我们可以创建一个函数索引(基于函数的索引)
- wordpress - Wordpress - 如何在 wordpress 上编辑过滤器
- javascript - 如何理解从 MediaRecorder 获得的音频元数据?
- python - 计算季度结束日期
- typescript - 使用 TypeScript 的方法重载不会推断参数类型
- android - 如何在android中的两个视频流之间添加GL转换?
- r - 如何检索表的列/字段名称?