(如何)CRAN 上的包可以导入不在 CRAN 上的包?

(How) can a package on CRAN import a package not on CRAN?

Comprehensive R Archive Network (CRAN) 上的包显然可以直接导入 CRAN 上的其他包。

CRAN 上的包是否也可以导入 CRAN 上不是的包? - 如果没有,我想选项是:

我很感兴趣,因为有时贡献放在一个单独的包中更有意义,尤其是当贡献可能单独使用或在其他包中使用时。

我不这么认为。

Writing R Extensions 指定您可以在 DESCRIPTION 文件中包含一个 Additional_repositories 字段。

然而,CRAN Repository Policy 表示:

Packages on which a CRAN package depends should be available from a mainstream repository: if any mentioned in ‘Suggests’ or ‘Enhances’ fields are not from such a repository, where to obtain them at a repository should be specified in an ‘Additional_repositories’ field of the DESCRIPTION file (as a comma-separated list of repository URLs) or for other means of access, described in the ‘Description’ field.

  • "mainstream" 这里大概是指 CRAN(也许是?Bioconductor)(this bioc-devel thread from 2015 表明 CRAN 和 Bioconductor 都是 "mainstream")
  • "depends"这里的意思是Imports/LinkingTo/Depends

除了您建议的解决方案之外,我想不出任何解决方案(在 CRAN 上获取软件包或 将必要的代码合并到您的软件包中)。