library(tidyverse)

— Data Loading —

trans <- read_csv(“https://raw.githubusercontent.com/imowerman-prog/data-3210/refs/heads/main/Data/trans-atlantic.csv”, col_types = col_types_spec) intra <- read_csv(“https://raw.githubusercontent.com/imowerman-prog/data-3210/refs/heads/main/Data/intra-american.csv”, col_types = col_types_spec)

— Cleaning Function —

clean_voyage_data <- function(df, source_label) { df %>% rename( year = voyage_dates__imp_arrival_at_port_of_dis_sparsedate__year, slaves_disembarked = voyage_slaves_numbers__imp_total_num_slaves_disembarked, slaves_embarked = voyage_slaves_numbers__imp_total_num_slaves_embarked, dis_broad = voyage_itinerary__imp_broad_region_slave_dis__name, dis_region = voyage_itinerary__imp_principal_region_slave_dis__name, dis_port = voyage_itinerary__imp_principal_port_slave_dis__name, nationality = voyage_ship__imputed_nationality__name, outcome = voyage_outcome__outcome_slaves__name ) %>% # Filter: Remove NAs and 0s in disembarked column filter(!is.na(slaves_disembarked), slaves_disembarked > 0) %>% # Filter: Only successful slave trade outcomes filter(outcome %in% c(“Slaves disembarked”, “Voyage completed”, “Sold slaves”)) %>% mutate( year = as.integer(year), decade = floor(year / 10) * 10, estimated_deaths = slaves_embarked - slaves_disembarked, # logic for US-based disembarkation is_us = if_else(dis_broad == “Mainland North America” | dis_region == “Mississippi River” | dis_port == “New Orleans”, TRUE, FALSE), source_type = source_label ) }

Apply and Combine

trans_clean <- clean_voyage_data(trans, “Trans-Atlantic”) intra_clean <- clean_voyage_data(intra, “Intra-American”) all_voyages <- bind_rows(trans_clean, intra_clean)

Question 1: Total slaves imported to the US

total_us_imports <- all_voyages %>% filter(is_us == TRUE) %>% summarise(total_imported = sum(slaves_disembarked, na.rm = TRUE))

print(total_us_imports)