【问题标题】:Know which (exact) R version a package was built under?知道一个包是在哪个(确切的)R 版本下构建的?
【发布时间】:2020-04-14 09:21:58
【问题描述】:

我们如何准确判断 R 包是在哪个 R 版本下构建的?

示例

在RSelenium包的DESCRIPTION文件here中,我们看到

Depends:
    R (>= 3.0.0)

但这似乎并不准确(由于> 符号)

注意事项

Karl Browman 的网站says

Depends 用于指示对特定版本的 R 的依赖,以及在加载包时要加载的包(使用 library())。如果您希望用户在加载您的包时想要加载其他包,那么您应该在此处包含包名称。但现在这种情况比较少见。 (我认为这些包的命名空间也应该使用@import 导入。)

【问题讨论】:

    标签: r cran roxygen2


    【解决方案1】:

    哪个版本构建了一个包几乎无关紧要。通常唯一重要的是安装它的版本。 (二进制包是已安装包的映像,因此对它们很重要。)

    安装软件包的版本存储在DESCRIPTION 文件的Built: 字段中。 (是的,“内置”,而不是“安装”。) 您可以使用类似的代码查看它

    read.dcf(system.file("DESCRIPTION", package="base"), fields="Built")
    #>      Built                                     
    #> [1,] "R 3.6.1; ; 2019-07-06 02:01:41 UTC; unix"
    

    输入你自己的包名而不是"base"

    “几乎无关紧要”的例外情况是在包格式更改的极少数情况下。

    【讨论】:

    • 很好的答案。有趣的是,read.dcf(system.file("DESCRIPTION", package="RSelenium"), fields="Built") 的结果是[1,] "R 3.6.0; ; 2019-04-27 03:05:58 UTC; unix",但是我在the github source 上看不到Built 的任何字段,这有点奇怪?
    • 安装时添加该字段。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 2015-04-30
    相关资源
    最近更新 更多