Code
library(tidyverse) # ggplot, lubridate, dplyr, stringr, readr...
library(praise)library(tidyverse) # ggplot, lubridate, dplyr, stringr, readr...
library(praise)The dataset this week comes from the Repair Monitor, which has been compiling data from Repair Cafes worldwide since 2015. Repair Cafe branches bring together volunteer fixers to help people learn how to repair household items that are broken.
Note: There appears to be some uncertainty (by submitters to the source data) of what to put in repair_info_source and repair_info_url. We included the questions for these fields to aid in the interpretation of the data.
As carbon-hungry consumer production and its subsequent waste surge to all-time highs, experts say that the concept can help curb pollution while promoting a more circular economy.
Thank you to Jen Richmond for curating this week’s dataset.
repairs <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2026/2026-04-07/repairs.csv')
repairs_text <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/main/data/2026/2026-04-07/repairs_text.csv')repairs |>
group_by(brand) |>
summarize(count = n()) |>
arrange(desc(count))# A tibble: 8,601 × 2
brand count
<chr> <int>
1 Unknown/n.a. 78902
2 Philips 10649
3 Bosch 3005
4 Sony 2576
5 Miele 2055
6 Tefal 1692
7 Samsung 1599
8 Dyson 1562
9 HP 1411
10 Black+Decker 1240
# ℹ 8,591 more rows
repairs |>
filter(brand %in% c("Philips", "Bosch", "Sony", "Miele", "Tefal")) |>
group_by(brand) |>
summarize(mean_repair = mean(repairability, na.rm = TRUE))# A tibble: 5 × 2
brand mean_repair
<chr> <dbl>
1 Bosch 6.51
2 Miele 6.38
3 Philips 6.35
4 Sony 5.88
5 Tefal 6.32
repairs |>
filter(brand %in% c("Philips", "Bosch", "Sony", "Miele", "Tefal")) |>
ggplot() +
geom_jitter(aes(x = repairability, y = brand), alpha = .1)+
geom_point(aes(x = repairability, y = brand), color = "red")repairs |>
filter(brand %in% c("Philips", "Bosch", "Sony", "Miele", "Tefal")) |>
filter(estimated_year_of_production > 1910, estimated_year_of_production < 2026) |>
ggplot() +
geom_jitter(aes(x = estimated_year_of_production, y = repairability,
color = brand), width = 0, alpha = 0.4) +
geom_point(aes(x = estimated_year_of_production, y = repairability, color = brand))repairs |>
filter(brand %in% c("Philips", "Bosch", "Sony", "Miele", "Tefal")) |>
filter(estimated_year_of_production > 1910, estimated_year_of_production < 2026) |>
filter(!is.na(repairability)) |>
filter(repairability > 0) |>
ggplot() +
geom_boxplot(aes(y = estimated_year_of_production, x = as.factor(repairability),
fill = brand), color = "black") +
geom_jitter(aes(y = estimated_year_of_production, x = as.factor(repairability)),
alpha = 0.1, size = 0.2) +
geom_hline(yintercept = 2015) +
theme_minimal() +
labs(x = "repairability", y = "production year",
title = "Is it harder to repair older items?")praise()[1] "You are sublime!"