【问题标题】:Comparing DESCRIPTION files between different r package versions比较不同 r 包版本之间的说明文件
【发布时间】:2021-09-10 22:24:54
【问题描述】:

我们通常使用utils::packageDescription 函数来检索任何本地包的DESCRIPTION 文件。不幸的是,比较不同包版本之间的说明文件并不容易。大多数情况下,我们希望获得不同包版本之间的依赖项差异(Depends/Imports/Suggests)。
如何实现这样的目标。

【问题讨论】:

    标签: r r-pacs


    【解决方案1】:

    pacs CRAN 包中提供了我自己针对此类问题的解决方案。
    pacs::pac_compare_versions 可用于比较不同包版本之间的包依赖关系。
    pacs::pac_description 用于启用说明文件的下载适用于任何软件包版本或特定日期。
    R CRAN 包支持函数。

    比较一个包的依赖关系。

    # by default c("Imports", "Depends", "LinkingTo") fields are considered
    pacs::pac_compare_versions("dplyr", "0.8.1", "1.0.0")
    #>       Package Version.0.8.1 Version.1.0.0 version_status
    #> 1  assertthat         0.2.1          <NA>             -1
    #> 2          BH      1.69.0-1          <NA>             -1
    #> 3    ellipsis          <NA>                            1
    #> 4    generics          <NA>                            1
    #> 5        glue         1.3.1         1.3.2              1
    #> 6   lifecycle          <NA>         0.2.0              1
    #> 7    magrittr           1.5           1.5              0
    #> 8     methods                                          0
    #> 9   pkgconfig         2.0.2          <NA>             -1
    #> 10      plogr         0.2.0          <NA>             -1
    #> 11          R         3.2.0         3.2.0              0
    #> 12         R6         2.4.0                           -1
    #> 13       Rcpp         1.0.1          <NA>             -1
    #> 14      rlang         0.3.4         0.4.6              1
    #> 15     tibble         2.1.1         2.1.3              1
    #> 16 tidyselect         0.2.5         1.1.0              1
    #> 17      utils                                          0
    #> 18      vctrs          <NA>         0.3.0              1
    

    版本或日期的原始说明文件。

    head(pacs::pac_description("dplyr", "0.8.1"), 3)
    #> $Type
    #> [1] "Package"
    #> 
    #> $Package
    #> [1] "dplyr"
    #> 
    #> $Title
    #> [1] "A Grammar of Data Manipulation"
    
    head(pacs::pac_description("dplyr", at = as.Date("2018-01-01")), 3)
    #> $Type
    #> [1] "Package"
    #> 
    #> $Package
    #> [1] "dplyr"
    #> 
    #> $Version
    #> [1] "0.7.4"
    

    逐个字段比较DESCRIPTION文件。

    x <- data.frame(`0.8.1` = I(pacs::pac_description("dplyr", "0.8.1")))
    y <- data.frame(`1.0.0` = I(pacs::pac_description("dplyr", "1.0.0")))
    head(merge(x, y, by = 0), 3)
    #>    Row.names         X0.8.1       X1.0.0
    #> 1     Author   Hadley W.... Hadley W....
    #> 2  Authors@R c(\nperson.... c(person....
    #> 3 BugReports   https://.... https://....
    

    reprex package (v2.0.1) 于 2021-09-11 创建

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2011-05-04
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      相关资源
      最近更新 更多