Skip to content

Instantly share code, notes, and snippets.

@gadenbuie
Created April 22, 2022 15:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gadenbuie/bbb40af84a57a256f798219b9b31e6f5 to your computer and use it in GitHub Desktop.
Save gadenbuie/bbb40af84a57a256f798219b9b31e6f5 to your computer and use it in GitHub Desktop.
library(dplyr)
library(tidyr)
library(purrr)
r_versions <- jsonlite::read_json("https://rversions.r-pkg.org/r-versions")
add_r_4_2 <- function(x) {
has_r_4_2 <- x %>%
filter(major == 4, minor == 2) %>%
nrow() %>%
`>`(0)
if (has_r_4_2) return(x)
x %>% bind_rows(tibble(major = 4, minor = 2, patch = 0, date = "2022-04-22"))
}
r_versions <-
r_versions %>%
map_dfr(~ .) %>%
arrange(desc(version)) %>%
separate(version, c("major", "minor", "patch"), sep = "[.]", fill = "right") %>%
readr::type_convert() %>%
mutate(date = strftime(date, "%F")) %>%
add_r_4_2() %>%
mutate(
version = glue::glue("{major}.{minor}.{patch}"),
across(date, clock::date_parse),
age = clock::date_count_between(date, clock::date_today("America/New_York"), "day"),
age = round(age / 365.25, 1)
)
r_first_releases <-
r_versions %>%
filter(major >= 3) %>%
group_by(major, minor) %>%
slice_min(date) %>%
ungroup() %>%
select(major, minor, first_release = date, first_age = age) %>%
arrange(desc(major), desc(minor))
r_versions %>%
group_by(major, minor) %>%
slice_max(date) %>%
ungroup() %>%
arrange(desc(major), desc(minor)) %>%
slice_head(n = 10) %>%
left_join(r_first_releases) %>%
select(version, age, first_age, released = date, first_release) %>%
mutate(notes = " ") %>%
knitr::kable()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment