【问题标题】:Retrieving all releases for a specific R package检索特定 R 包的所有版本
【发布时间】:2021-09-11 09:46:02
【问题描述】:

有哪些可用的 r 工具来获取特定 R CRAN 包的所有版本列表。
预计至少检索每个软件包版本发布的日期。 每个包的其他元数据也很有价值。

【问题讨论】:

标签: r r-pacs


【解决方案1】:

TL;DR

  • pacs::pac_timemachine
  • pkgsearch::cran_package_history
  • pkgdown:::pkg_timeline(未导出且仅发布日期)

pacs::pac_timemachinepacs 包中。

pacs::pac_timemachine 正在使用 CRAN 网站或 crandb。

head(pacs::pac_timemachine("tidyr"), 3)
#>   Package Version   Released   Archived LifeDuration
#> 2   tidyr     0.1 2014-07-21 2015-09-08     414 days
#> 3   tidyr   0.2.0 2015-09-08 2015-09-08       0 days
#> 4   tidyr   0.3.0 2015-09-08 2015-09-10       2 days
#>                                URL Size
#> 2   Archive/tidyr/tidyr_0.1.tar.gz 134K
#> 3 Archive/tidyr/tidyr_0.2.0.tar.gz 139K
#> 4 Archive/tidyr/tidyr_0.3.0.tar.gz 147K
tail(pacs::pac_timemachine("tidyr"), 3)
#>    Package Version   Released   Archived LifeDuration
#> 25   tidyr   1.1.1 2020-07-31 2020-08-27      27 days
#> 26   tidyr   1.1.2 2020-08-27 2021-03-03     188 days
#> 1    tidyr   1.1.3 2021-03-03       <NA>     192 days
#>                                 URL Size
#> 25 Archive/tidyr/tidyr_1.1.1.tar.gz 859K
#> 26 Archive/tidyr/tidyr_1.1.2.tar.gz 861K
#> 1                tidyr_1.1.3.tar.gz <NA>

我们也可以获得特定日期或日期间隔或版本的结果。

pacs::pac_timemachine("tidyr", at = as.Date("2018-01-01"))
pacs::pac_timemachine("tidyr", version = "1.0.0")
pacs::pac_timemachine("tidyr", from = as.Date("2020-06-01"), to = as.Date("2020-08-01"))

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

pkgsearch 包。

这是在私有数据库下构建的,该数据库系统地为每个 CRAN 包附加了新的说明文件。

head(pkgsearch::cran_package_history("tidyr"), 3)
#> # A tibble: 3 × 25
#>   Package Title    Version `Authors@R`    Description    License LazyData URL   
#>   <chr>   <chr>    <chr>   <chr>          <chr>          <chr>   <chr>    <chr> 
#> 1 tidyr   Easily … 0.1     "'Hadley Wick… tidyr is an e… MIT + … true     https…
#> 2 tidyr   Easily … 0.2.0   "as.person(c(… An evolution … MIT + … true     https…
#> 3 tidyr   Easily … 0.3.0   "c(<U+000a>pe… An evolution … MIT + … true     https…
#> # … with 17 more variables: VignetteBuilder <chr>, Packaged <chr>,
#> #   Author <chr>, Maintainer <chr>, NeedsCompilation <chr>, Repository <chr>,
#> #   Date/Publication <chr>, crandb_file_date <chr>, date <chr>,
#> #   dependencies <list>, BugReports <chr>, RoxygenNote <chr>, Remotes <chr>,
#> #   MD5sum <chr>, Encoding <chr>, SystemRequirements <chr>,
#> #   Config/testthat/edition <chr>
tail(pkgsearch::cran_package_history("tidyr"), 3)
#> # A tibble: 3 × 25
#>   Package Title           Version `Authors@R` Description License LazyData URL  
#>   <chr>   <chr>           <chr>   <chr>       <chr>       <chr>   <chr>    <chr>
#> 1 tidyr   Tidy Messy Data 1.1.1   "\nc(perso… "Tools to … MIT + … true     http…
#> 2 tidyr   Tidy Messy Data 1.1.2   "\nc(perso… "Tools to … MIT + … true     http…
#> 3 tidyr   Tidy Messy Data 1.1.3   "\nc(perso… "Tools to … MIT + … true     http…
#> # … with 17 more variables: VignetteBuilder <chr>, Packaged <chr>,
#> #   Author <chr>, Maintainer <chr>, NeedsCompilation <chr>, Repository <chr>,
#> #   Date/Publication <chr>, crandb_file_date <chr>, date <chr>,
#> #   dependencies <list>, BugReports <chr>, RoxygenNote <chr>, Remotes <chr>,
#> #   MD5sum <chr>, Encoding <chr>, SystemRequirements <chr>,
#> #   Config/testthat/edition <chr>

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

pkgdown

pkgdown:::pkg_timeline 包中的pkgdown 函数。这是一个非导出函数,因此 sb 必须考虑到这一点。它只返回每个包版本发布的日期。

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 2013-05-18
    • 2021-10-23
    • 2016-12-05
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    相关资源
    最近更新 更多