使用一些R代码可以得到已安装的R包发布的年份吗?我可以得到这个版本,但是当这个版本发布的时候,我必须在互联网上查找它。背景:我在瑞士联邦统计局工作,一个小组正在努力获得更好的R环境(例如,我们正在使用2017年的dplyr版本0.7.4……并且无法安装更新的版本...)。
干杯
发布于 2021-07-02 01:17:02
您可以使用versions包来获取包版本的时间戳。该软件包从中提取软件包的已发布版本
versions::installed.versions("dplyr")
# [1] "1.0.7"
versions::available.versions("dplyr")
# $dplyr
# version date available
# 1 1.0.7 2021-06-18 TRUE
# 2 1.0.6 2021-05-05 TRUE
# 3 1.0.5 2021-03-05 TRUE
# ...包龄
因此,如果您想回答有关包期限的特定问题,可以执行以下操作:
how_old <- function(pkg, lib = .libPaths()[1], return_age = FALSE) {
pkg_ver <- versions::installed.versions(pkgs = pkg, lib = lib)
av_vers <- versions::available.versions(pkgs = pkg)
pkg_dte <- subset.data.frame(
x = as.data.frame(unname(av_vers)),
subset = version == pkg_ver,
select = date,
drop = TRUE
)
pkg_dte <- as.Date(pkg_dte)
if (return_age) {
return(epocakir::dob2age(dob = pkg_dte))
} else {
return(pkg_dte)
}
}
how_old("dplyr", return_age = TRUE)结果
[1] "1123200s (~1.86 weeks)"包创建
或者你想知道包是什么时候在本地安装的。
when_created <- function(pkg, lib = .libPaths()[1]) {
# Package will always have DESCRIPTION file so that's a safe bet
desc_file <- system.file("DESCRIPTION", package = pkg, lib.loc = lib)
info <- fs::file_info(desc_file)
info$birth_time
}
when_created("dplyr")结果
# [1] "2021-06-25 08:47:21 BST"发布于 2021-07-02 01:08:35
正如@Jonathan推荐的那样,如果包中有引用,那么您可以在引用中调用年份。
citation("dplyr")$year另一种方法是从包的可用版本列表中获取日期。
devtools::install_github("https://github.com/cran/versions")
library(versions)
x <- versions::available.versions(c("dplyr", "ggplot2"))
version_year <-
function(x,
package.name = "",
version = "") {
pckg <- x[[package.name]]
row <- which(pckg$version == version)
return(pckg$date[row])
}
version_year(x, "ggplot2", version = "2.0.0")
#[1] "2015-12-18"发布于 2021-07-02 01:16:22
作为最后的手段,您可以找出包是何时通过其DESCRIPTION创建的
packageDescription(pkg)$Packaged事实上,如果没有提供其他日期(无论是作为Date/Publication还是通过显式的CITATION文件),citation都会回到这个字段。
https://stackoverflow.com/questions/68214167
复制相似问题