Death penalty
[This article was first published on r.iresmi.net, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Day 3 of 30DayMapChallenge: « Polygons » (previously).
A classic world choropleth map. We’ll use the Comparative Death Penalty Database (Anckar and Denk 2024) available on https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/LI3WYK and the basemap from {rnaturalearth}.
library(dplyr) library(tibble) library(readr) library(glue) library(readxl) library(janitor) library(ggplot2) library(scales) library(ggspatial) library(sf) library(rnaturalearth) library(countrycode)
Data
The CDPD doesn’t use ISO A3 country codes, so we need to translate them from the Correlates of War codes with {countrycode}.
codes <- tribble( ~deathpenalty, ~lib_deathpenalty, ~color, 0, "Abolished", "lightskyblue", 1, "Abolished for ordinary crimes only", "khaki1", 2, "Abolished for ordinary crimes only, but used during the last 10 years.", "gold1", 3, "Abolished in practice", "indianred1", 4, "Retained", "indianred4") if (!file.exists("cdpd.rds")) { download.file("https://dataverse.harvard.edu/api/access/datafile/10251764", "cdpd.xlsx") cdpd <- read_xlsx("cdpd.xlsx") |> clean_names() |> filter(year == 2022, country != "MICRONESIA") |> mutate(iso = countrycode(cowcode, "cown", "iso3c", custom_match = c("342" = "SRB", "348" = "MNE", "818" = "VNM"))) |> left_join(codes, join_by(deathpenalty)) |> select(country, iso, lib_deathpenalty) |> write_rds("cdpd.rds") } else { cdpd <- read_rds("cdpd.rds") } abolished <- nrow(filter(cdpd, lib_deathpenalty == "Abolished")) / nrow(cdpd)
Map data
country_map <- ne_countries(scale = 110, returnclass = "sf") |> select(sovereignt, sov_a3, admin, adm0_a3)
Map
pal_dp <- codes |> select(lib_deathpenalty, color) |> deframe() cdpd_map <- country_map |> left_join(cdpd, join_by(adm0_a3 == iso)) cdpd_map |> ggplot() + geom_sf(aes(fill = lib_deathpenalty)) + scale_fill_manual(values = pal_dp, na.value = "grey") + coord_sf(crs = "+proj=eqearth") + labs(title = glue("Death penalty is still retained in {percent(1 - abolished)} of the countries"), subtitle = "2022", fill = "Death penalty\nstatus", caption = glue("data: Comparative Death Penalty Database map data: NaturalErth r.iresmi.net - {Sys.Date()}")) + theme_void() + theme(plot.background = element_rect(color = NA, fill = "white"), legend.position = "bottom", legend.text = element_text(size = 8), plot.caption = element_text(size = 5, color = "darkgrey"))
References
Anckar, Carsten, and Thomas Denk. 2024. “Comparative Death Penalty Database.” Harvard Dataverse. https://doi.org/10.7910/DVN/LI3WYK.
To leave a comment for the author, please follow the link and comment on their blog: r.iresmi.net.
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.