{datardis} package v.0.0.5
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Introduction
The {datardis} package includes datasets which provide lists of episodes for the Doctor Who and Torchwood TV series.
The latest version of the package (v.0.0.5) includes the latest episodes :
- 2023 specials
- Series 14 (2024)
Installing the package
To install the latest version of the package, use the following command:
# 🔽 INSTALL THE PACKAGE --------------------------------------------------
install.packages("datardis")
Alternatively, you can install the package from GitHub using {devtools} :
devtools::install_github("KittJonathan/datardis")
Loading the packages
First of all, let’s load the packages we’ll be using :
{tidyverse} to clean the data and create the plots
If you don’t have the {tidyverse} installed, simply use the install.packages("tidyverse") function.
# 📦 LOAD THE PACKAGES ---------------------------------------------------- library(tidyverse) library(datardis)
Cleaning the data
We use the following code to clean the data:
# 🧹 Clean the data ----
categories <- all_countries |>
# extract unique values
distinct(Category, Subcategory)
d <- global_human_day |>
# join the categories
left_join(categories) |>
# select columns
select(Category, hoursPerDay) |>
# add hours per category
summarise(total = sum(hoursPerDay), .by = Category) |>
# arrange by decreasing amount of time
arrange(-total) |>
# split the total column into two values
separate(col = total, into = c("h", "m"), remove = F) |>
# transform the trailing hours value into minutes
mutate(m = round(as.numeric(paste0("0.", m)) * 60),
h = as.numeric(h)) |>
# create labels for plots
mutate(duration = case_when(h == 0 ~ paste0(m, "m"),
TRUE ~ paste0(h, "h ", m, "m"))) |>
# select columns
select(Category, total, duration)
Creating the plot
First we create a custom function to generate one plot per category :
plot_hm <- function(data, row) {
ggplot() +
geom_rect(aes(xmin = 3, xmax = 4,
ymin = 0, ymax = 24),
colour = "#7e38b7", fill = "#7e38b7") +
geom_rect(data = slice(data, row),
aes(xmin = 3, xmax = 4,
ymin = 0, ymax = total),
colour = "#9c89ff", fill = "#9c89ff") +
coord_polar(theta = "y") +
xlim(c(0.05, 4)) +
labs(title = d$Category[row]) +
annotate("text", x = 0.05, y = 0,
label = d$duration[row],
family = "Roboto Condensed",
colour = "#c4feff",
size = 25) +
theme_void() +
theme(panel.background = element_rect(fill = "#541675",
colour = NA),
plot.background = element_rect(fill = "#541675",
colour = NA),
plot.title = element_text(family = "Roboto Condensed",
colour = "#c4feff", size = 40,
hjust = 0.5,
margin = margin(b = -10)))
}
We use the following code to create and assemble the plots and export the final figure :
# Create the plots
p1 <- plot_hm(d, 1)
p2 <- plot_hm(d, 2)
p3 <- plot_hm(d, 3)
p4 <- plot_hm(d, 4)
p5 <- plot_hm(d, 5)
p6 <- plot_hm(d, 6)
p7 <- plot_hm(d, 7)
p8 <- plot_hm(d, 8)
# Assemble the plots
p <- (p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8) +
plot_layout(ncol = 4) +
plot_annotation(title = "How humans spend their day time",
caption = "#TidyTuesday 2023 week 37 | Data from the Human Chronome Project | Jonathan Kitt",
theme = theme(panel.background = element_rect(fill = "#541675", colour = NA),
plot.background = element_rect(fill = "#541675", colour = NA),
plot.title = element_text(family = "Roboto Condensed",
colour = "#c4feff", size = 100,
hjust = 0.5, margin = margin(t = 5, b = 25)),
plot.caption = element_text(family = "Roboto Condensed",
colour = "white", size = 30, hjust = 0.5)))
# Export the plot
ggsave("figs/tt_2023_w37_global_human_day.png", p, dpi = 320, width = 12, height = 6)
We now create the second plot:
And here’s the result!

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.