data-raw/export_import_category.R

# Apportion Export Category Data Based on Deliveries

# Import Data ---
export_category <- readr::read_csv("data/export_category.csv")
trade_register <- readr::read_csv("data/trade_register.csv")
country_lu <- readr::read_csv("data-raw/sipri_country_list.csv")
weapon_lu <- readr::read_csv("data-raw/weapon_system_lu.csv") |>
  dplyr::rename(armament_category = Weapon_Category)

# Tidy ----

# Look-ups
supplier_country_lu <- country_lu |>
  dplyr::rename(seller_country_code = country_code,
                seller = country_label)

# Process Export Category
export_category_f <- export_category |>
  dplyr::select(seller = Export_From,
                armament_category = Weapon_Category,
                year = Year,
                tiv = TIV) |>
  dplyr::filter(seller  != "All") |>
  dplyr::filter(year != "Total") |>
  dplyr::filter(armament_category != "Total") |>
  dplyr::mutate(year = as.numeric(year)) |>
  dplyr::filter(year > 1991) |>
  dplyr::left_join(supplier_country_lu, by = "seller") |>
  dplyr::left_join(weapon_lu, by = "armament_category") |>
  dplyr::select(5,6,1:4) |>
  dplyr::mutate(armament_category_id = as.numeric(armament_category_id))

# Tidy Deliveries Data
deliveries <- trade_register |>
  dplyr::select(seller_country_code, buyer_country_code, armament_category_id,
                year, no_delivered) |>
  dplyr::mutate(no_delivered = stringr::str_remove_all(no_delivered, "\\(|\\)")) |>
  dplyr::mutate(no_delivered = as.numeric(no_delivered))

# Calculate Import TIV by Category Apportioning by Deliveries
export_import_category <- export_category_f |>
  dplyr::left_join(deliveries, by = c("seller_country_code", "armament_category_id", "year")) |>
  dplyr::distinct(seller_country_code, buyer_country_code, armament_category_id, tiv, year, no_delivered) |>
  dplyr::select(seller_country_code, buyer_country_code, armament_category_id,
                year,  no_delivered, total_tiv = tiv) |>
  dplyr::group_by(seller_country_code, year, armament_category_id) |>
  dplyr::mutate(p_delivered = no_delivered/sum(no_delivered)) |>
  dplyr::mutate(tiv = round(p_delivered * total_tiv,0)) |>
  dplyr::select(-total_tiv, -p_delivered, -no_delivered) |>
  dplyr::ungroup()

# Export
usethis::use_data(export_import_category, overwrite = TRUE)
write.csv(export_import_category, "data/export_import_category.csv", row.names = FALSE)
lajh87/sipriarmsdata documentation built on Aug. 3, 2022, 3:41 p.m.