library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.3     v purrr   0.3.4
## v tibble  3.0.5     v dplyr   1.0.3
## v tidyr   1.1.2     v stringr 1.4.0
## v readr   1.4.0     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(tinytex)
setwd("C:/Users/Owner/Desktop/My Documents/School/DataFiles")
hatecrimes <- read_csv("hateCrimes2010.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   .default = col_double(),
##   County = col_character(),
##   `Crime Type` = col_character()
## )
## i Use `spec()` for the full column specifications.
spec(hatecrimes)
## cols(
##   County = col_character(),
##   Year = col_double(),
##   `Crime Type` = col_character(),
##   `Anti-Male` = col_double(),
##   `Anti-Female` = col_double(),
##   `Anti-Transgender` = col_double(),
##   `Anti-Gender Identity Expression` = col_double(),
##   `Anti-Age*` = col_double(),
##   `Anti-White` = col_double(),
##   `Anti-Black` = col_double(),
##   `Anti-American Indian/Alaskan Native` = col_double(),
##   `Anti-Asian` = col_double(),
##   `Anti-Native Hawaiian/Pacific Islander` = col_double(),
##   `Anti-Multi-Racial Groups` = col_double(),
##   `Anti-Other Race` = col_double(),
##   `Anti-Jewish` = col_double(),
##   `Anti-Catholic` = col_double(),
##   `Anti-Protestant` = col_double(),
##   `Anti-Islamic (Muslim)` = col_double(),
##   `Anti-Multi-Religious Groups` = col_double(),
##   `Anti-Atheism/Agnosticism` = col_double(),
##   `Anti-Religious Practice Generally` = col_double(),
##   `Anti-Other Religion` = col_double(),
##   `Anti-Buddhist` = col_double(),
##   `Anti-Eastern Orthodox (Greek, Russian, etc.)` = col_double(),
##   `Anti-Hindu` = col_double(),
##   `Anti-Jehovahs Witness` = col_double(),
##   `Anti-Mormon` = col_double(),
##   `Anti-Other Christian` = col_double(),
##   `Anti-Sikh` = col_double(),
##   `Anti-Hispanic` = col_double(),
##   `Anti-Arab` = col_double(),
##   `Anti-Other Ethnicity/National Origin` = col_double(),
##   `Anti-Non-Hispanic*` = col_double(),
##   `Anti-Gay Male` = col_double(),
##   `Anti-Gay Female` = col_double(),
##   `Anti-Gay (Male and Female)` = col_double(),
##   `Anti-Heterosexual` = col_double(),
##   `Anti-Bisexual` = col_double(),
##   `Anti-Physical Disability` = col_double(),
##   `Anti-Mental Disability` = col_double(),
##   `Total Incidents` = col_double(),
##   `Total Victims` = col_double(),
##   `Total Offenders` = col_double()
## )

Clean Up the data

Make all headers lowercase and remove spaces

names(hatecrimes) <- tolower(names(hatecrimes))
names(hatecrimes) <- gsub(" ","",names(hatecrimes))
str(hatecrimes)
## tibble [423 x 44] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ county                                  : chr [1:423] "Albany" "Albany" "Allegany" "Bronx" ...
##  $ year                                    : num [1:423] 2016 2016 2016 2016 2016 ...
##  $ crimetype                               : chr [1:423] "Crimes Against Persons" "Property Crimes" "Property Crimes" "Crimes Against Persons" ...
##  $ anti-male                               : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-female                             : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-transgender                        : num [1:423] 0 0 0 4 0 0 0 0 0 0 ...
##  $ anti-genderidentityexpression           : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-age*                               : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-white                              : num [1:423] 0 0 0 1 1 0 0 0 0 0 ...
##  $ anti-black                              : num [1:423] 1 2 1 0 0 1 0 1 0 2 ...
##  $ anti-americanindian/alaskannative       : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-asian                              : num [1:423] 0 0 0 0 0 1 0 0 0 0 ...
##  $ anti-nativehawaiian/pacificislander     : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-multi-racialgroups                 : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-otherrace                          : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-jewish                             : num [1:423] 0 0 0 0 1 0 1 0 0 0 ...
##  $ anti-catholic                           : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-protestant                         : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-islamic(muslim)                    : num [1:423] 1 0 0 6 0 0 0 0 1 0 ...
##  $ anti-multi-religiousgroups              : num [1:423] 0 1 0 0 0 0 0 0 0 0 ...
##  $ anti-atheism/agnosticism                : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-religiouspracticegenerally         : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-otherreligion                      : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-buddhist                           : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-easternorthodox(greek,russian,etc.): num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-hindu                              : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-jehovahswitness                    : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-mormon                             : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-otherchristian                     : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-sikh                               : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-hispanic                           : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-arab                               : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-otherethnicity/nationalorigin      : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-non-hispanic*                      : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-gaymale                            : num [1:423] 1 0 0 8 0 1 0 0 0 0 ...
##  $ anti-gayfemale                          : num [1:423] 0 0 0 1 0 0 0 0 0 0 ...
##  $ anti-gay(maleandfemale)                 : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-heterosexual                       : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-bisexual                           : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-physicaldisability                 : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ anti-mentaldisability                   : num [1:423] 0 0 0 0 0 0 0 0 0 0 ...
##  $ totalincidents                          : num [1:423] 3 3 1 20 2 3 1 1 1 2 ...
##  $ totalvictims                            : num [1:423] 4 3 1 20 2 3 1 1 1 2 ...
##  $ totaloffenders                          : num [1:423] 3 3 1 25 2 3 1 1 1 2 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   County = col_character(),
##   ..   Year = col_double(),
##   ..   `Crime Type` = col_character(),
##   ..   `Anti-Male` = col_double(),
##   ..   `Anti-Female` = col_double(),
##   ..   `Anti-Transgender` = col_double(),
##   ..   `Anti-Gender Identity Expression` = col_double(),
##   ..   `Anti-Age*` = col_double(),
##   ..   `Anti-White` = col_double(),
##   ..   `Anti-Black` = col_double(),
##   ..   `Anti-American Indian/Alaskan Native` = col_double(),
##   ..   `Anti-Asian` = col_double(),
##   ..   `Anti-Native Hawaiian/Pacific Islander` = col_double(),
##   ..   `Anti-Multi-Racial Groups` = col_double(),
##   ..   `Anti-Other Race` = col_double(),
##   ..   `Anti-Jewish` = col_double(),
##   ..   `Anti-Catholic` = col_double(),
##   ..   `Anti-Protestant` = col_double(),
##   ..   `Anti-Islamic (Muslim)` = col_double(),
##   ..   `Anti-Multi-Religious Groups` = col_double(),
##   ..   `Anti-Atheism/Agnosticism` = col_double(),
##   ..   `Anti-Religious Practice Generally` = col_double(),
##   ..   `Anti-Other Religion` = col_double(),
##   ..   `Anti-Buddhist` = col_double(),
##   ..   `Anti-Eastern Orthodox (Greek, Russian, etc.)` = col_double(),
##   ..   `Anti-Hindu` = col_double(),
##   ..   `Anti-Jehovahs Witness` = col_double(),
##   ..   `Anti-Mormon` = col_double(),
##   ..   `Anti-Other Christian` = col_double(),
##   ..   `Anti-Sikh` = col_double(),
##   ..   `Anti-Hispanic` = col_double(),
##   ..   `Anti-Arab` = col_double(),
##   ..   `Anti-Other Ethnicity/National Origin` = col_double(),
##   ..   `Anti-Non-Hispanic*` = col_double(),
##   ..   `Anti-Gay Male` = col_double(),
##   ..   `Anti-Gay Female` = col_double(),
##   ..   `Anti-Gay (Male and Female)` = col_double(),
##   ..   `Anti-Heterosexual` = col_double(),
##   ..   `Anti-Bisexual` = col_double(),
##   ..   `Anti-Physical Disability` = col_double(),
##   ..   `Anti-Mental Disability` = col_double(),
##   ..   `Total Incidents` = col_double(),
##   ..   `Total Victims` = col_double(),
##   ..   `Total Offenders` = col_double()
##   .. )
summary(hatecrimes)
##     county               year       crimetype           anti-male       
##  Length:423         Min.   :2010   Length:423         Min.   :0.000000  
##  Class :character   1st Qu.:2011   Class :character   1st Qu.:0.000000  
##  Mode  :character   Median :2013   Mode  :character   Median :0.000000  
##                     Mean   :2013                      Mean   :0.007092  
##                     3rd Qu.:2015                      3rd Qu.:0.000000  
##                     Max.   :2016                      Max.   :1.000000  
##   anti-female      anti-transgender  anti-genderidentityexpression
##  Min.   :0.00000   Min.   :0.00000   Min.   :0.00000              
##  1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.:0.00000              
##  Median :0.00000   Median :0.00000   Median :0.00000              
##  Mean   :0.01655   Mean   :0.04728   Mean   :0.05674              
##  3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.:0.00000              
##  Max.   :1.00000   Max.   :5.00000   Max.   :3.00000              
##    anti-age*         anti-white        anti-black    
##  Min.   :0.00000   Min.   : 0.0000   Min.   : 0.000  
##  1st Qu.:0.00000   1st Qu.: 0.0000   1st Qu.: 0.000  
##  Median :0.00000   Median : 0.0000   Median : 1.000  
##  Mean   :0.05201   Mean   : 0.3357   Mean   : 1.761  
##  3rd Qu.:0.00000   3rd Qu.: 0.0000   3rd Qu.: 2.000  
##  Max.   :9.00000   Max.   :11.0000   Max.   :18.000  
##  anti-americanindian/alaskannative   anti-asian    
##  Min.   :0.000000                  Min.   :0.0000  
##  1st Qu.:0.000000                  1st Qu.:0.0000  
##  Median :0.000000                  Median :0.0000  
##  Mean   :0.007092                  Mean   :0.1773  
##  3rd Qu.:0.000000                  3rd Qu.:0.0000  
##  Max.   :1.000000                  Max.   :8.0000  
##  anti-nativehawaiian/pacificislander anti-multi-racialgroups anti-otherrace
##  Min.   :0                           Min.   :0.00000         Min.   :0     
##  1st Qu.:0                           1st Qu.:0.00000         1st Qu.:0     
##  Median :0                           Median :0.00000         Median :0     
##  Mean   :0                           Mean   :0.08511         Mean   :0     
##  3rd Qu.:0                           3rd Qu.:0.00000         3rd Qu.:0     
##  Max.   :0                           Max.   :3.00000         Max.   :0     
##   anti-jewish     anti-catholic     anti-protestant   anti-islamic(muslim)
##  Min.   : 0.000   Min.   : 0.0000   Min.   :0.00000   Min.   : 0.0000     
##  1st Qu.: 0.000   1st Qu.: 0.0000   1st Qu.:0.00000   1st Qu.: 0.0000     
##  Median : 0.000   Median : 0.0000   Median :0.00000   Median : 0.0000     
##  Mean   : 3.981   Mean   : 0.2695   Mean   :0.02364   Mean   : 0.4704     
##  3rd Qu.: 3.000   3rd Qu.: 0.0000   3rd Qu.:0.00000   3rd Qu.: 0.0000     
##  Max.   :82.000   Max.   :12.0000   Max.   :1.00000   Max.   :10.0000     
##  anti-multi-religiousgroups anti-atheism/agnosticism
##  Min.   : 0.00000           Min.   :0               
##  1st Qu.: 0.00000           1st Qu.:0               
##  Median : 0.00000           Median :0               
##  Mean   : 0.07565           Mean   :0               
##  3rd Qu.: 0.00000           3rd Qu.:0               
##  Max.   :10.00000           Max.   :0               
##  anti-religiouspracticegenerally anti-otherreligion anti-buddhist
##  Min.   :0.000000                Min.   :0.000      Min.   :0    
##  1st Qu.:0.000000                1st Qu.:0.000      1st Qu.:0    
##  Median :0.000000                Median :0.000      Median :0    
##  Mean   :0.007092                Mean   :0.104      Mean   :0    
##  3rd Qu.:0.000000                3rd Qu.:0.000      3rd Qu.:0    
##  Max.   :2.000000                Max.   :4.000      Max.   :0    
##  anti-easternorthodox(greek,russian,etc.)   anti-hindu      
##  Min.   :0.000000                         Min.   :0.000000  
##  1st Qu.:0.000000                         1st Qu.:0.000000  
##  Median :0.000000                         Median :0.000000  
##  Mean   :0.002364                         Mean   :0.002364  
##  3rd Qu.:0.000000                         3rd Qu.:0.000000  
##  Max.   :1.000000                         Max.   :1.000000  
##  anti-jehovahswitness  anti-mormon anti-otherchristian   anti-sikh
##  Min.   :0            Min.   :0    Min.   :0.00000     Min.   :0  
##  1st Qu.:0            1st Qu.:0    1st Qu.:0.00000     1st Qu.:0  
##  Median :0            Median :0    Median :0.00000     Median :0  
##  Mean   :0            Mean   :0    Mean   :0.01655     Mean   :0  
##  3rd Qu.:0            3rd Qu.:0    3rd Qu.:0.00000     3rd Qu.:0  
##  Max.   :0            Max.   :0    Max.   :3.00000     Max.   :0  
##  anti-hispanic       anti-arab       anti-otherethnicity/nationalorigin
##  Min.   : 0.0000   Min.   :0.00000   Min.   : 0.0000                   
##  1st Qu.: 0.0000   1st Qu.:0.00000   1st Qu.: 0.0000                   
##  Median : 0.0000   Median :0.00000   Median : 0.0000                   
##  Mean   : 0.3735   Mean   :0.06619   Mean   : 0.2837                   
##  3rd Qu.: 0.0000   3rd Qu.:0.00000   3rd Qu.: 0.0000                   
##  Max.   :17.0000   Max.   :2.00000   Max.   :19.0000                   
##  anti-non-hispanic*  anti-gaymale    anti-gayfemale   anti-gay(maleandfemale)
##  Min.   :0          Min.   : 0.000   Min.   :0.0000   Min.   :0.0000         
##  1st Qu.:0          1st Qu.: 0.000   1st Qu.:0.0000   1st Qu.:0.0000         
##  Median :0          Median : 0.000   Median :0.0000   Median :0.0000         
##  Mean   :0          Mean   : 1.499   Mean   :0.2411   Mean   :0.1017         
##  3rd Qu.:0          3rd Qu.: 1.000   3rd Qu.:0.0000   3rd Qu.:0.0000         
##  Max.   :0          Max.   :36.000   Max.   :8.0000   Max.   :4.0000         
##  anti-heterosexual  anti-bisexual      anti-physicaldisability
##  Min.   :0.000000   Min.   :0.000000   Min.   :0.00000        
##  1st Qu.:0.000000   1st Qu.:0.000000   1st Qu.:0.00000        
##  Median :0.000000   Median :0.000000   Median :0.00000        
##  Mean   :0.002364   Mean   :0.004728   Mean   :0.01182        
##  3rd Qu.:0.000000   3rd Qu.:0.000000   3rd Qu.:0.00000        
##  Max.   :1.000000   Max.   :1.000000   Max.   :1.00000        
##  anti-mentaldisability totalincidents    totalvictims    totaloffenders  
##  Min.   :0.000000      Min.   :  1.00   Min.   :  1.00   Min.   :  1.00  
##  1st Qu.:0.000000      1st Qu.:  1.00   1st Qu.:  1.00   1st Qu.:  1.00  
##  Median :0.000000      Median :  3.00   Median :  3.00   Median :  3.00  
##  Mean   :0.009456      Mean   : 10.09   Mean   : 10.48   Mean   : 11.77  
##  3rd Qu.:0.000000      3rd Qu.: 10.00   3rd Qu.: 10.00   3rd Qu.: 11.00  
##  Max.   :1.000000      Max.   :101.00   Max.   :106.00   Max.   :113.00

Select anti-religion categories with > 0 incidents

hatecrimesR <- hatecrimes %>% 
  select(county, year, 'anti-jewish', 'anti-catholic','anti-protestant','anti-islamic(muslim)', 'anti-multi-religiousgroups', , 'anti-religiouspracticegenerally', 'anti-otherreligion', 'anti-easternorthodox(greek,russian,etc.)', 'anti-hindu', 'anti-otherchristian') %>%
  group_by(county, year)
head(hatecrimesR)
## # A tibble: 6 x 12
## # Groups:   county, year [4]
##   county  year `anti-jewish` `anti-catholic` `anti-protestan~ `anti-islamic(m~
##   <chr>  <dbl>         <dbl>           <dbl>            <dbl>            <dbl>
## 1 Albany  2016             0               0                0                1
## 2 Albany  2016             0               0                0                0
## 3 Alleg~  2016             0               0                0                0
## 4 Bronx   2016             0               0                0                6
## 5 Bronx   2016             1               0                0                0
## 6 Broome  2016             0               0                0                0
## # ... with 6 more variables: `anti-multi-religiousgroups` <dbl>,
## #   `anti-religiouspracticegenerally` <dbl>, `anti-otherreligion` <dbl>,
## #   `anti-easternorthodox(greek,russian,etc.)` <dbl>, `anti-hindu` <dbl>,
## #   `anti-otherchristian` <dbl>
dim(hatecrimesR)
## [1] 423  12
summary(hatecrimesR)
##     county               year       anti-jewish     anti-catholic    
##  Length:423         Min.   :2010   Min.   : 0.000   Min.   : 0.0000  
##  Class :character   1st Qu.:2011   1st Qu.: 0.000   1st Qu.: 0.0000  
##  Mode  :character   Median :2013   Median : 0.000   Median : 0.0000  
##                     Mean   :2013   Mean   : 3.981   Mean   : 0.2695  
##                     3rd Qu.:2015   3rd Qu.: 3.000   3rd Qu.: 0.0000  
##                     Max.   :2016   Max.   :82.000   Max.   :12.0000  
##  anti-protestant   anti-islamic(muslim) anti-multi-religiousgroups
##  Min.   :0.00000   Min.   : 0.0000      Min.   : 0.00000          
##  1st Qu.:0.00000   1st Qu.: 0.0000      1st Qu.: 0.00000          
##  Median :0.00000   Median : 0.0000      Median : 0.00000          
##  Mean   :0.02364   Mean   : 0.4704      Mean   : 0.07565          
##  3rd Qu.:0.00000   3rd Qu.: 0.0000      3rd Qu.: 0.00000          
##  Max.   :1.00000   Max.   :10.0000      Max.   :10.00000          
##  anti-religiouspracticegenerally anti-otherreligion
##  Min.   :0.000000                Min.   :0.000     
##  1st Qu.:0.000000                1st Qu.:0.000     
##  Median :0.000000                Median :0.000     
##  Mean   :0.007092                Mean   :0.104     
##  3rd Qu.:0.000000                3rd Qu.:0.000     
##  Max.   :2.000000                Max.   :4.000     
##  anti-easternorthodox(greek,russian,etc.)   anti-hindu      
##  Min.   :0.000000                         Min.   :0.000000  
##  1st Qu.:0.000000                         1st Qu.:0.000000  
##  Median :0.000000                         Median :0.000000  
##  Mean   :0.002364                         Mean   :0.002364  
##  3rd Qu.:0.000000                         3rd Qu.:0.000000  
##  Max.   :1.000000                         Max.   :1.000000  
##  anti-otherchristian
##  Min.   :0.00000    
##  1st Qu.:0.00000    
##  Median :0.00000    
##  Mean   :0.01655    
##  3rd Qu.:0.00000    
##  Max.   :3.00000

Use Facet Wrap

hatecrimeslong <- hatecrimesR %>% 
  tidyr::gather("id", "crimecount", 3:10) 

hatecrimesplot <-hatecrimeslong %>% 
  ggplot(., aes(year, crimecount))+
  geom_point()+
  aes(color = id)+
  facet_wrap(~id)
hatecrimesplot

Filter for Anti-Jewish, Anti-Catholic, Anti-Islamic and Anti-Multi Religious Groups

hatenew <- hatecrimeslong %>%
  filter( id == "anti-catholic" | id == "anti-islamic(muslim)" | id == "anti-jewish" | id == 'anti-multi-religiousgroups')%>%
  group_by(year, county) %>%
  arrange(desc(crimecount))
hatenew
## # A tibble: 1,692 x 6
## # Groups:   year, county [277]
##    county   year `anti-hindu` `anti-otherchristian` id          crimecount
##    <chr>   <dbl>        <dbl>                 <dbl> <chr>            <dbl>
##  1 Kings    2012            0                     0 anti-jewish         82
##  2 Kings    2016            1                     0 anti-jewish         51
##  3 Suffolk  2014            0                     0 anti-jewish         48
##  4 Suffolk  2012            0                     0 anti-jewish         48
##  5 Kings    2011            0                     0 anti-jewish         44
##  6 Kings    2013            0                     0 anti-jewish         41
##  7 Kings    2010            0                     0 anti-jewish         39
##  8 Nassau   2011            0                     0 anti-jewish         38
##  9 Suffolk  2013            0                     0 anti-jewish         37
## 10 Nassau   2016            0                     0 anti-jewish         36
## # ... with 1,682 more rows
plot2 <- hatenew %>%
  ggplot() +
  geom_bar(aes(x=year, y=crimecount, fill = id),
      position = "dodge", stat = "identity") +
  ggtitle("Anti-Religion Hate Crime Type in NY Counties Between 2010-2016") +
  ylab("Number of Hate Crime Incidents") + 
  xlab("Year") +
  labs(fill = "Hate Crime Type")
plot2

Anti-Jewish crimes and Anti-Multi Religious incidents spiked in 2012, Anti-Catholic crimes rose sharply in 2011 and then tapered off. Anti-Islamic crimes have remained at fairly consistent levels.

Plot by Counties

plot3 <- hatenew %>%
  ggplot() +
  geom_bar(aes(x=county, y=crimecount, fill = id),
      position = "dodge", stat = "identity") +
  ggtitle("Anti-Religion Hate Crime Type in NY Counties Between 2010-2016") +
  ylab("Number of Hate Crime Incidents") + 
  xlab("Year") +
  labs(fill = "Hate Crime Type")
plot3

Look at counties with incidents > 20 in any one year

counties <- hatenew %>%
  group_by(county, year)%>%
  summarize(sum = sum(crimecount)) %>%
  arrange(desc(sum))
## `summarise()` has grouped output by 'county'. You can override using the `.groups` argument.
## `summarise()` regrouping output by 'county' (override with `.groups` argument)
counties
## # A tibble: 277 x 3
## # Groups:   county [60]
##    county    year   sum
##    <chr>    <dbl> <dbl>
##  1 Kings     2012   127
##  2 Kings     2016    92
##  3 Kings     2014    86
##  4 Kings     2010    81
##  5 Kings     2013    72
##  6 Kings     2015    72
##  7 Kings     2011    68
##  8 Suffolk   2012    65
##  9 Suffolk   2014    53
## 10 New York  2012    52
## # ... with 267 more rows

Barchart for seven counties

plot4 <- hatenew %>%
  filter(county =="Kings" | county =="New York" | county == "Suffolk" | county == "Nassau" | county == "Queens" | county == "Richmond" | county == "Westchester") %>%
  ggplot() +
  geom_bar(aes(x=county, y=crimecount, fill = id),
      position = "dodge", stat = "identity") +
    labs(x = "County", y = "Number of Hate Crime Incidents",
         title = "7 Counties in NY with Highest Incidents of Anti-Religion Hate Crimes",
         subtitle = "Between 2010-2016") + 
         scale_fill_discrete(name = "Hate Crime Type", labels = c("Anti-Catholic", "Anti-Islamic (Muslim)", "Anti-Jewish", "Anti-Multi Religious Groups"))
plot4

Anti-Jewish incidents far outstrip others, except in Westchester county, which is more Anti-Catholic.

Add population information - Read NY population file

setwd("C:/Users/Owner/Desktop/My Documents/School/DataFiles")
nypop <- read_csv("newyorkpopulation.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   Geography = col_character(),
##   `2010` = col_double(),
##   `2011` = col_double(),
##   `2012` = col_double(),
##   `2013` = col_double(),
##   `2014` = col_double(),
##   `2015` = col_double(),
##   `2016` = col_double()
## )

Clean the County name

nypop$Geography <- gsub(" , New York", "", nypop$Geography)
nypop$Geography <- gsub("County", "", nypop$Geography)
nypoplong <- nypop %>%
  rename(county = Geography) %>%
  gather("year", "population", 2:8) 
nypoplong$year <- as.double(nypoplong$year)
head(nypoplong)
## # A tibble: 6 x 3
##   county                  year population
##   <chr>                  <dbl>      <dbl>
## 1 Albany , New York       2010     304078
## 2 Allegany , New York     2010      48949
## 3 Bronx , New York        2010    1388240
## 4 Broome , New York       2010     200469
## 5 Cattaraugus , New York  2010      80249
## 6 Cayuga , New York       2010      79844

Focus on 2012, clean the county name, stripping off “, New York”

nypoplong12 <- nypoplong %>%
  filter(year == 2012) %>%
  arrange(desc(population)) %>%
  head(10)
nypoplong12$county<-gsub(" , New York","",nypoplong12$county)
nypoplong12
## # A tibble: 10 x 3
##    county       year population
##    <chr>       <dbl>      <dbl>
##  1 Kings        2012    2572282
##  2 Queens       2012    2278024
##  3 New York     2012    1625121
##  4 Suffolk      2012    1499382
##  5 Bronx        2012    1414774
##  6 Nassau       2012    1350748
##  7 Westchester  2012     961073
##  8 Erie         2012     920792
##  9 Monroe       2012     748947
## 10 Richmond     2012     470978

Filter hate crimes data for 2012

counties12 <- counties %>%
  filter(year == 2012) %>%
  arrange(desc(sum)) 
counties12
## # A tibble: 41 x 3
## # Groups:   county [41]
##    county    year   sum
##    <chr>    <dbl> <dbl>
##  1 Kings     2012   127
##  2 Suffolk   2012    65
##  3 New York  2012    52
##  4 Queens    2012    49
##  5 Nassau    2012    46
##  6 Richmond  2012    18
##  7 Bronx     2012    13
##  8 Multiple  2012     7
##  9 Orange    2012     7
## 10 Rockland  2012     5
## # ... with 31 more rows

Join hate crimes and population data

datajoin <- counties12 %>%
  full_join(nypoplong12, by=c("county", "year"))
datajoin
## # A tibble: 41 x 4
## # Groups:   county [41]
##    county    year   sum population
##    <chr>    <dbl> <dbl>      <dbl>
##  1 Kings     2012   127    2572282
##  2 Suffolk   2012    65    1499382
##  3 New York  2012    52    1625121
##  4 Queens    2012    49    2278024
##  5 Nassau    2012    46    1350748
##  6 Richmond  2012    18     470978
##  7 Bronx     2012    13    1414774
##  8 Multiple  2012     7         NA
##  9 Orange    2012     7         NA
## 10 Rockland  2012     5         NA
## # ... with 31 more rows

Calculate the rate of incidents per 100,000. Then sort descending

datajoinrate <- datajoin %>%
  mutate(rate = sum/population*100000) %>%
  arrange(desc(rate))
datajoinrate
## # A tibble: 41 x 5
## # Groups:   county [41]
##    county       year   sum population  rate
##    <chr>       <dbl> <dbl>      <dbl> <dbl>
##  1 Kings        2012   127    2572282 4.94 
##  2 Suffolk      2012    65    1499382 4.34 
##  3 Richmond     2012    18     470978 3.82 
##  4 Nassau       2012    46    1350748 3.41 
##  5 New York     2012    52    1625121 3.20 
##  6 Queens       2012    49    2278024 2.15 
##  7 Bronx        2012    13    1414774 0.919
##  8 Monroe       2012     4     748947 0.534
##  9 Westchester  2012     5     961073 0.520
## 10 Erie         2012     1     920792 0.109
## # ... with 31 more rows

The highest rate of religous hate crimes in 2012 happened in :

dt <- datajoinrate[,c("county","rate")]
dt
## # A tibble: 41 x 2
## # Groups:   county [41]
##    county       rate
##    <chr>       <dbl>
##  1 Kings       4.94 
##  2 Suffolk     4.34 
##  3 Richmond    3.82 
##  4 Nassau      3.41 
##  5 New York    3.20 
##  6 Queens      2.15 
##  7 Bronx       0.919
##  8 Monroe      0.534
##  9 Westchester 0.520
## 10 Erie        0.109
## # ... with 31 more rows
County Pop Rank Hate Crime Rate
Kings 1 4.94
Suffolk 4 4.34
Richmond 10 3.82
Nassau 6 3.41
New York 3 3.2
Queens 2 2.15
Bronx 5 0.91
Monroe 9 0.53
Westchester 7 0.52

Kings county is the most populous and has the highest religious hate crime rate, with a high number of anti-jewish incidents in 2012. Richmond county, ranked 10th in population, is 3rd for religious hate crimes per 100k people, also with a high number of anti-jewish incidents. Westchester county at 7th for population has the highest number of anti-catholic incidents, and anti-catholic incidents here outweigh anti-jewish and anti-islamic incidents.

Discussion

Positive and negative aspects of Hate Crimes dataset

The dataset has racial, religious and sexual orientation broken out into a number of sub-categories, with catch-all buckets. While these are not comprehensive, they do appear to focus on the most common categories. Physical disability is a single category, and I wonder if the national data would support breaking it into sub-categories, i.e. obesity, mobility, etc.

Without seeing definitions it’s not clear what the difference might be between Anti-Multi-Religious Groups, Anti-Religious Practice Generally and Anti-Other Religion. Where would Wiccan or Zaroastrian fall?

There’s a lot of empty data, of the religion categories 1/3 had no incidents reported. There’s no way of telling if this is because there were no incidents, or incidents weren’t reported. Or is it due the the population demographics or some other reason?

List 2 different paths to hypothetically study.

  1. I’d like to look at the Crime Type categorical variable and see how “Property Crimes” and “Crimes against Persons” relate to the areas of racial, religious and gender/sexual orientation. Do property crimes happen more frequently in the anti-religion categories? Are anti-racial or anti-gay crimes more often against a person?
  2. I’d look at the relationship between offenders and victims to see how often there’s a gang attacking one or two victims.

Describe 2 things for follow up after seeing these results.

  1. What happened in 2012 to cause an upsurge of Anti-Jewish and Anti-Multi Religious groups incidents?
  2. What happened in 2011 to cause an upsurge in Anti-Catholic incidents, and what could be the cause of Anti-Catholic sentiment in Westchester county?