gpt4 book ai didi

r - 强制 R 包版本依赖的上限

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

在开发 R 包时,我们使用 DESCRIPTION 文件列出包依赖项(例如,在“导入”部分),我们可以通过后缀指定每个包依赖项所需的最低版本用“(>= x.x.x)”。但是,指定最大 版本的类似功能是什么?

一些上下文

有时,我们依赖的外部包发布时带有重大更改,这些更改可能不再与正在开发的包兼容。每次使用重大更改更新外部包时更新我们的包是不可持续的。

例子

假设我正在开发一个名为“MarksPackage”的 R 包,它依赖于“dplyr”。到目前为止,我构建的所有内容都适用于 dplyr v1 的当前状态。但是,明天 dplyr v2 将发布,重大更改会影响我的包。对于正在安装我的软件包的新用户,可能已经安装了最新的 dplyr v2,因此 MarksPackage 对他们不起作用。每次使用重大更改更新 dplyr 时,我不一定想要或能够去更新我的包。我宁愿指定一个最大版本,甚至是一个版本范围,我知道 MarksPackage 可以对其工作。

如何在 DESCRIPTION 文件中完成此操作?是否有如下语法:

Package: MarksPackage
Imports:
dplyr (>= 0.8.5 & <=1.2.0),
dbplyr,
tidyr (<= 1.0.2)

最佳答案

每当您对 R 扩展包的工作方式有疑问时,您应该咨询 Writing R Extensions手动的。特别是在这里,你想要 Section 1.1.3, Package Dependencies , 在相关部分解释

The ‘Depends’ field gives a comma-separated list of package names which this package depends on. Those packages will be attached before the current package when library or require is called. Each package name may be optionally followed by a comment in parentheses specifying a version requirement. The comment should contain a comparison operator, whitespace and a valid version number, e.g. ‘MASS (>= 3.1-20)’.

...

A package or ‘R’ can appear more than once in the ‘Depends’ field, for example to give upper and lower bounds on acceptable versions.

所以,对于你的例子,你会这样做

Package: MarksPackage
Imports:
dplyr (>= 0.8.5),
dplyr (<= 1.2.0),
dbplyr,
tidyr (<= 1.0.2)

关于r - 强制 R 包版本依赖的上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63834412/

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