Skip to content

Instantly share code, notes, and snippets.

@jpearl1395
Last active February 26, 2016 22:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpearl1395/a66331eb64f35476b823 to your computer and use it in GitHub Desktop.
Save jpearl1395/a66331eb64f35476b823 to your computer and use it in GitHub Desktop.
Japanese American migration patterns with IPUMS census data
library(readr)
library(dplyr)
library(ggplot2)
library(RColorBrewer)
library(maptools)
library(ggmap)
library(gtools)
setwd('/Users/joshpearl/Documents/Dartmouth/Junior Year 16W-16X/16W/HIST 90.01- US Hist Through Census/Immigration Assignment')
a<-read_csv('usa_00007.csv')
# Remove Alaska and Hawaii, select variables
aa<-filter(a,STATEFIP < 60 & (YEAR >= 1980 | !(STATEFIP %in% c(2,15))))
b<-select(aa,YEAR,RACE,BPL,STATEFIP,PERWT)
unique(b$RACE)
c<-mutate(b,RACE=factor(RACE,labels=c('White', 'Black', 'Native American',
'Chinese', 'Japanese', 'Other Asian', 'Other')))
# Separate Japanese and Non-Japanese by RACE
e<-mutate(c, Japanese=ifelse(RACE=='Japanese', 'Yes', 'No'))
# Remove all non-Japanese race
f<-e[e$Japanese=='Yes', ]
# Separate Nisei and Issei by BPL and remove unneccessary variables
g<-mutate(f, Generation=ifelse(BPL==501, 0,
ifelse(BPL<100, 1, 2))) %>%
mutate(Generation=factor(Generation, labels=c('Issei', 'Nisei', 'Neither'))) %>%
filter(Generation=='Issei' | Generation=='Nisei')
h<-g[g$Generation=='Nisei', ]
Nisei<-h[, c(-2:-3, -6:-7)]
i<-g[g$Generation=='Issei', ]
Issei<-i[, c(-2:-3, -6:-7)]
# Upload USA Map from Canvas
USAmap<-read_csv('map.csv')
ggplot(data=USAmap) + theme_nothing() +
geom_map(map=USAmap,aes(x=long,y=lat,map_id=id,group=group),fill='white',color='black',size=0.15)
# Assign State names to STATEFIP
unique(g$STATEFIP)
# Create and upload State names csv file
states<-read_csv('states2.csv')
# Summarize Issei and Nisei per State with PERWT
Nisei_State<-summarise(group_by(h,YEAR, STATEFIP), NUMBER=sum(PERWT))
Issei_State<-summarise(group_by(i, YEAR, STATEFIP), NUMBER=sum(PERWT))
# Allow states with no Issei and no Nisei to be assigned STATEFIP=0 so they can be mapped
Nisei_State <- select(Nisei_State,YEAR,STATEFIP,NUMBER)
all <- mutate(states,NUMBER=0)
years <- unique(Nisei_State$YEAR)
allyears <- merge(years,all)
allyears <- select(allyears,YEAR=x,STATEFIP,NUMBER)
j <- rbind(Nisei_State,allyears)
Nisei_State <- summarise(group_by(j,YEAR,STATEFIP),NUMBER=sum(NUMBER))
Issei_State <- select(Issei_State, YEAR, STATEFIP, NUMBER)
all2 <- mutate(states, NUMBER=0)
years2 <- unique(Issei_State$YEAR)
allyears2 <- merge(years2, all2)
allyears2 <- select(allyears2, YEAR=x, STATEFIP, NUMBER)
k <- rbind(Issei_State, allyears2)
Issei_State <- summarise(group_by(k,YEAR,STATEFIP),NUMBER=sum(NUMBER))
Nisei_State2<-merge(Nisei_State, states, by='STATEFIP', all.x=TRUE)
Issei_State2<-merge(Issei_State, states, by='STATEFIP', all.x=TRUE)
# Assign Categories to NUMBER
Nisei_State3<-mutate(Nisei_State2, NUMBER=
ifelse(NUMBER==0, 0,
ifelse(NUMBER<1000, 1,
ifelse(NUMBER<20000, 2,
ifelse(NUMBER<40000, 3,
ifelse(NUMBER<60000, 4,
ifelse(NUMBER<80000, 5,
ifelse(NUMBER<100000, 6, 7))))))))
unique(Nisei_State3$NUMBER)
# Label NUMBER categories
Nisei_State4<-mutate(Nisei_State3, NUMBER=factor(NUMBER, labels=c("None", "Under 1,000",
"1,000 - 19,999",
"20,000 - 39,999",
"40,000 - 59,999", "60,000 - 79,999",
"Over 100,000")))
Nisei_State5<-merge(Nisei_State4, USAmap, by.x='State', by.y='id')
Nisei_State6<-arrange(Nisei_State5, order)
Nisei_State7<- filter(Nisei_State6, State!='Alaska' & State!='Hawaii') %>%
filter(YEAR==1930 | YEAR==1940 | YEAR==1950 | YEAR==1960 | YEAR==1970)
# Map Nisei
Nisei_map<-ggplot() + theme_nothing(legend=TRUE) +
geom_polygon(data = Nisei_State7,
aes(x = long, y = lat, group = group, fill = NUMBER),
color = "black", size = 0.25) +
facet_grid(YEAR~.) + labs(title='Nisei Population by State 1930 - 1970', fill='Number of Nisei') +
scale_fill_brewer(palette='Blues')
print(Nisei_map)
#Assign Categories to NUMBER
Issei_State3<-mutate(Issei_State2, NUMBER=
ifelse(NUMBER==0, 0,
ifelse(NUMBER<1000, 1,
ifelse(NUMBER<10000, 2,
ifelse(NUMBER<20000, 3,
ifelse(NUMBER<30000, 4,
ifelse(NUMBER<40000, 5,
ifelse(NUMBER<50000, 6, 7))))))))
unique(Issei_State4$NUMBER)
# Label NUMBER categories
Issei_State4<-mutate(Issei_State3, NUMBER=factor(NUMBER, labels=c("None", "Under 1,000", "1,000 - 9,999",
"10,000 - 19,999", "20,000 - 29,000",
"30,000 - 39,999", "40,000 - 49,999",
"50,000+")))
Issei_State5<-merge(Issei_State4, USAmap, by.x='State', by.y='id')
Issei_State6<-arrange(Issei_State5, order)
Issei_State7<- filter(Issei_State6, State!='Alaska' & State!='Hawaii') %>%
filter(YEAR==1910 | YEAR==1920 | YEAR==1930 | YEAR==1940 | YEAR==1950)
# Map Issei
Issei_map<-ggplot() + theme_nothing(legend=TRUE) +
geom_polygon(data = Issei_State7,
aes(x = long, y = lat, group = group, fill = NUMBER),
color = "black", size = 0.25) +
facet_grid(YEAR~.) + labs(title='Issei Population by State 1910 - 1950', fill='Number of Issei') +
scale_fill_brewer(palette='Greens')
print(Issei_map)
# Graph Japanese population by Issei and Nisei from 1900 - 1970
ga<- summarise(group_by(g, YEAR, Generation), NUMBER=sum(PERWT))
JapanesePop<-ggplot(ga, aes(x=YEAR, y=NUMBER, fill=Generation)) +
geom_bar(stat='identity') +
labs(title='Japanese Population by Generation', x='Year', y='Population') +
scale_fill_discrete(guide = guide_legend(reverse=TRUE)) + scale_y_continuous(labels=scales::comma)
print(JapanesePop)
dev.off()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment