In 2018, United States President Donald Trump enacted a family separation policy at the US-Mexico border. Under the policy, as immigrant families entered the United States, children were separated from the rest of their families by U.S. Immigration and Customs Enforcement (ICE) and brought to detention facilities around the country.

Upon learning about this policy, the American Civil Liberties Union (ACLU) filed a lawsuit against the administration. The government subsequently provided the ACLU with data related to the immigrant children separated from their families at the border.

“Aren’t grown ups supposed to keep kids safe”

“Aren’t grown ups supposed to keep kids safe”

As a concerned citizen of the world, I was interested in researching the family separations and want to get a better understanding of how many children were separated and where they were taken. Using the government data provided to the ACLU, this project focuses on digging into the numbers and gain an understanding of the situation.

# load libraries
library(readr)
library(dplyr)

View of the dataframe.

Each row of this data frame represents a single detention center, and the number stored in column n is the number of children held at each facility.

# load data
aclu <- read_csv("aclu_separations.csv")
## Parsed with column specification:
## cols(
##   addr = col_character(),
##   n = col_double(),
##   program_city = col_character(),
##   program_state = col_character(),
##   lon = col_double(),
##   lat = col_double()
## )
head(aclu)
## # A tibble: 6 x 6
##   addr                n program_city program_state   lon   lat
##   <chr>           <dbl> <chr>        <chr>         <dbl> <dbl>
## 1 Baltimore, MD      12 Baltimore    MD            -76.6  39.3
## 2 Baytown, TX        63 Baytown      TX            -95.0  29.7
## 3 Bethlehem, PA      15 Bethlehem    PA            -75.4  40.6
## 4 Bristow, VA        23 Bristow      VA            -77.5  38.7
## 5 Bronx, NY         354 Bronx        NY            -73.9  40.8
## 6 Brownsville, TX   348 Brownsville  TX            -97.5  25.9
summary(aclu)
##      addr                 n          program_city       program_state     
##  Length:64          Min.   :  1.00   Length:64          Length:64         
##  Class :character   1st Qu.:  5.00   Class :character   Class :character  
##  Mode  :character   Median : 15.50   Mode  :character   Mode  :character  
##                     Mean   : 41.47                                        
##                     3rd Qu.: 41.75                                        
##                     Max.   :354.00                                        
##       lon               lat       
##  Min.   :-122.66   Min.   :25.47  
##  1st Qu.:-111.14   1st Qu.:30.18  
##  Median : -96.50   Median :33.73  
##  Mean   : -95.22   Mean   :35.16  
##  3rd Qu.: -78.71   3rd Qu.:40.78  
##  Max.   : -71.80   Max.   :47.61

Cleaning the Data

addr column contains the same information that is contained in the program_city and program_state columns.

# select columns
aclu <- aclu %>%
 select(-addr)
# view columns
colnames(aclu)
## [1] "n"             "program_city"  "program_state" "lon"          
## [5] "lat"
# rename columns
aclu <- aclu %>%
 rename(city = program_city, state = program_state, number_children = n,  longitude = lon, latitude = lat)

colnames (aclu)
## [1] "number_children" "city"            "state"           "longitude"      
## [5] "latitude"

How Far ?

How far each detention center is from the United States-Mexico border, in terms of latitude change. Southernmost point of the border lies at a latitude of 25.83. I have created a variable border_latitude with the value 25.83.

# add column
border_latitude <- 25.83
aclu <- aclu %>%
 mutate(lat_change_border = latitude - border_latitude)

head(aclu)
## # A tibble: 6 x 6
##   number_children city        state longitude latitude lat_change_border
##             <dbl> <chr>       <chr>     <dbl>    <dbl>             <dbl>
## 1              12 Baltimore   MD        -76.6     39.3           13.5   
## 2              63 Baytown     TX        -95.0     29.7            3.91  
## 3              15 Bethlehem   PA        -75.4     40.6           14.8   
## 4              23 Bristow     VA        -77.5     38.7           12.9   
## 5             354 Bronx       NY        -73.9     40.8           15.0   
## 6             348 Brownsville TX        -97.5     25.9            0.0717
# latitude change
further_away <- aclu %>%
 filter (lat_change_border > 15)

further_away <- further_away %>%
 arrange(desc(lat_change_border))

further_away
## # A tibble: 15 x 6
##    number_children city         state longitude latitude lat_change_border
##              <dbl> <chr>        <chr>     <dbl>    <dbl>             <dbl>
##  1               5 Seattle      WA       -122.      47.6              21.8
##  2               2 Renton       WA       -122.      47.5              21.6
##  3               2 Tacoma       WA       -122.      47.3              21.4
##  4               4 Portland     OR       -123.      45.5              19.7
##  5               1 Rochester    NY        -77.6     43.2              17.3
##  6              45 Grand Rapids MI        -85.7     43.0              17.1
##  7               1 Worcester    MA        -71.8     42.3              16.4
##  8               4 Des Plaines  IL        -87.9     42.0              16.2
##  9               7 Kingston     NY        -74.0     41.9              16.1
## 10              87 Chicago      IL        -87.6     41.9              16.0
## 11               2 Mystic       CT        -72.0     41.4              15.5
## 12              11 Lincolndale  NY        -73.7     41.3              15.5
## 13              26 Irvington    NY        -73.9     41.0              15.2
## 14              23 Yonkers      NY        -73.9     40.9              15.1
## 15             354 Bronx        NY        -73.9     40.8              15.0

Detention centers that held the largest number of children ?

Children Separated From Teir Parents

Children Separated From Teir Parents

# number of children
ordered_by_children <- aclu %>%
 arrange(desc(number_children))

head(ordered_by_children)
## # A tibble: 6 x 6
##   number_children city        state longitude latitude lat_change_border
##             <dbl> <chr>       <chr>     <dbl>    <dbl>             <dbl>
## 1             354 Bronx       NY        -73.9     40.8           15.0   
## 2             348 Brownsville TX        -97.5     25.9            0.0717
## 3             208 Phoenix     AZ       -112.      33.4            7.62  
## 4             174 Harlingen   TX        -97.7     26.2            0.361 
## 5             163 San Antonio TX        -98.5     29.4            3.59  
## 6             145 Homestead   FL        -80.5     25.5           -0.361

What’s Happening in a Specific State?

According to the data, children have been separated from their parents to detention centers located in many states. I have checked Washington. The code can be reused to check other state as well, changing the variable value.

Facilities where separated children were held

Facilities where separated children were held

# state analysis
choosen_state <- ("WA")
choosen_state_separations <- aclu %>%
 filter(state == choosen_state) %>%
  arrange(desc(number_children))

 choosen_state_separations
## # A tibble: 3 x 6
##   number_children city    state longitude latitude lat_change_border
##             <dbl> <chr>   <chr>     <dbl>    <dbl>             <dbl>
## 1               5 Seattle WA        -122.     47.6              21.8
## 2               2 Renton  WA        -122.     47.5              21.6
## 3               2 Tacoma  WA        -122.     47.3              21.4

  1. Author github: Emon-ProCoder7 2. Author Linked-in:Md Tabassum Hossain Emon