Skip to content

A minimalist package to tidy USA asylum data for UNHCR reporting purposes.

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

unhcr-americas/usastats

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

usastats

A minimalist package to tidy USA asylum data for UNHCR reporting purposes.

The functions in the package read the raw data as shared by the government (excel, pdf, or web dashboards) and turn them into tidy tibbles ready for analysis.

For example, here's the resettlement data:

> read_wraps()
$flows
# A tibble: 16,752 x 6
   dataset  year month coo   flow           n
   <chr>   <dbl> <dbl> <chr> <chr>      <dbl>
 1 WRAPS    2020    10 BDI   admissions     0
 2 WRAPS    2020    11 BDI   admissions     0
 3 WRAPS    2020    12 BDI   admissions     0
 4 WRAPS    2021     1 BDI   admissions     0
 5 WRAPS    2021     2 BDI   admissions     0
 6 WRAPS    2021     3 BDI   admissions     0
 7 WRAPS    2021     4 BDI   admissions     1
 8 WRAPS    2021     5 BDI   admissions     9
 9 WRAPS    2021     6 BDI   admissions    30
10 WRAPS    2021     7 BDI   admissions    29
# ... with 16,742 more rows

And here's how to reproduce the RSD 2 table from the 2020 ASR:

library(tidyverse)
library(usastats)
library(popdata)

uscis <- read_uscis()
eoir <- read_eoir()

stock <- bind_rows(USCIS = uscis$stock, EOIR = eoir$stock, .id = "src")
flows <- bind_rows(USCIS = uscis$flows, EOIR = eoir$flows, .id = "src")
rsd <- pd_asr("rsd", year = 2019) |> filter(asylum == "USA")

rsd |> 
  filter(meta_decisionType == "EO") |> 
  count(origin, wt = totalEndYear, name = "yrstart") |> 
  full_join(stock |> 
              filter(src == "EOIR", dataset == "DEF", stock == "end") |> 
              count(origin = coo, wt = n, name = "yrend")) |> 
  full_join(flows |> 
              filter(src == "EOIR", dataset == "DEF") |> 
              count(origin = coo, flow, wt = n) |> 
              pivot_wider(names_from = flow, values_from = n)) |> 
  mutate(yrend = if_else(is.na(yrend), yrstart, yrend)) |> 
  select(origin, yrstart, applications, recognitions, rejections, closures, yrend)

# A tibble: 196 x 7
   origin yrstart applications recognitions rejections closures yrend
   <chr>    <dbl>        <dbl>        <dbl>      <dbl>    <dbl> <dbl>
 1 AFG         74           15           11          7        0    66
 2 AIA          0           NA           NA         NA       NA     0
 3 ALB        503           43           18         21        0   492
 4 ALG         40            7            0          0        0    40
 5 ANG        104          273            5         27        0   327
 6 ANT          0            0            0          0        0     0
 7 ARE        217           45           11         13        7   232
 8 ARG         93           16            0          9        0   100
 9 ARM       1510          221           49         29       21  1604
10 AUL          8            0            0          0        0     7
# ... with 186 more rows

TO-DO list:

  • Data sources
    • USCIS
      • import
      • tidy
    • EOIR
      • import
      • tidy
    • CBP
      • scrape
      • tidy
    • WRAPSnet
      • scrape
      • tidy
  • Country mapping
  • ASR/MYSR generation
  • Shiny app?

About

A minimalist package to tidy USA asylum data for UNHCR reporting purposes.

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • R 100.0%