Вы можете использовать пакет versions
, чтобы получить метку времени версии пакета. Пакет извлекает опубликованные версии пакета с сервера снимков MRAN.
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"
Может быть, с
citation("package")
?Я не знаю никаких существующих способов узнать дату выпуска конкретной версии пакета, кроме просмотра веб-сайта CRAN. Но, возможно, вы можете решить свою проблему по-другому, используя что-то вроде диспетчера пакетов RStudio. С помощью менеджера пакетов вы можете получить URL-адрес репозитория CRAN на определенную дату. Таким образом, вы можете получить все версии пакетов, доступные на эту дату.