Example
#4. Explore the Geographies that Tidycensus can pull out.
This is an example of
using tidycensus to extract 2014/18 ACS data for all available geographies for
the entire USA. It���s just a test of capabilities.
Some geographic levels (county subdivision, state upper and lower houses) don���t appear to be working.
There is some extra code in the ���PUMA step��� to tally the number of PUMAs per US state, and the minimum and maximum total population levels for each PUMA in the US.
# Step 0: Load relevant libraries into each
R-session.
library(tidyverse)
library(tidycensus)
library(janitor)
library(plyr) # This is needed for a
function to concatenate a lot of files in one statement!
library(dplyr)
# Add the variable Geography_Name to each
data frame. Maybe concatenate/pancake these dataframes?
selvars
<- c(TotalPop_ =
"B06001_001", # Total Population
SamplePop_ = "B00001_001", # Unweighted Sample Count of Population
HHUnits_ = "B25002_001", # Total Housing
Units
Househlds_ = "B25002_002", # Total Households
SampleDU_ = "B00002_001") # Unweighted
Sample Count of Dwelling Units
#------------------------------------------------------------------------------------
us
<- get_acs(survey="acs5", year=2018, geography =
"us",
show_call =
TRUE,output="wide", variables = selvars)
us$Geography_Name <- "us"
#------------------------------------------------------------------------------------
region
<- get_acs(survey="acs5", year=2018, geography =
"region",
show_call =
TRUE,output="wide", variables = selvars)
region$Geography_Name <-
"region"
#------------------------------------------------------------------------------------
division
<- get_acs(survey="acs5", year=2018, geography =
"division",
show_call =
TRUE,output="wide", variables = selvars)
division$Geography_Name <-
"division"
#------------------------------------------------------------------------------------
state
<- get_acs(survey="acs5", year=2018, geography =
"state",
show_call =
TRUE,output="wide", variables = selvars)
state$Geography_Name <-
"state"
setwd("~/Desktop/tidycensus_work/output")
write.csv(state,"ACS1418_USA_State_1.csv")
#------------------------------------------------------------------------------------
county
<- get_acs(survey="acs5", year=2018, geography =
"county",
show_call =
TRUE,output="wide", variables = selvars)
county$Geography_Name <-
"county"
#------------------------------------------------------------------------------------
# County Subdivision isn't working
...returns an API error (unknown/unsupported geography)
countysubdiv <- get_acs(survey="acs5",
year=2018, geography = "county subdivision",
show_call =
TRUE,output="wide", variables = selvars)
countysubdiv$Geography_Name <-
"countysubdiv"
#------------------------------------------------------------------------------------
# Pull just the tracts in Alameda County,
California
tract
<- get_acs(survey="acs5", year=2018, geography =
"tract",
state="CA",
county="Alameda",show_call = TRUE,output="wide",
variables = selvars)
tract$Geography_Name <-
"tract"
#------------------------------------------------------------------------------------
# Pull just the block groups in Alameda
County, California
blockgroup<-
get_acs(survey="acs5", year=2018, geography = "block
group", state="CA", county="Alameda",show_call
= TRUE,output="wide", variables = selvars)
blockgroup$Geography_Name <-
"blockgroup"
#------------------------------------------------------------------------------------
place
<- get_acs(survey="acs5", year=2018, geography =
"place",
show_call =
TRUE,output="wide", variables = selvars)
place$Geography_Name <-
"place"
#------------------------------------------------------------------------------------
urban
<- get_acs(survey="acs5", year=2018, geography =
"urban area",
show_call =
TRUE,output="wide", variables = selvars)
urban$Geography_Name <-
"urban"
#------------------------------------------------------------------------------------
congdist
<- get_acs(survey="acs5", year=2018, geography =
"congressional district",
show_call =
TRUE,output="wide", variables = selvars)
congdist$Geography_Name <-
"congdist"
#------------------------------------------------------------------------------------
puma
<- get_acs(survey="acs5", year=2018, geography =
"public use microdata area",
show_call =
TRUE,output="wide", variables = selvars)
puma$TotalPop2 <- puma$TotalPop_E * 1.0
puma$Tally <- 1.0
puma$State <- substr(puma$GEOID,1,2)
puma$Geography_Name <- "puma"
pumas <-
puma[order(puma$State,puma$GEOID),]
summary(pumas)
sum1 <- aggregate(pumas[,3:12],
by = list(pumas$State),
FUN = sum, na.rm=TRUE)
min1 <- aggregate(pumas[,3:12],
by = list(pumas$State),
FUN = min, na.rm=TRUE)
max1 <- aggregate(pumas[,3:12],
by = list(pumas$State),
FUN = max, na.rm=TRUE)
setwd("~/Desktop/tidycensus_work/output")
write.csv(sum1,"ACS1418_USA_PUMA_sum_by_State_1.csv")
write.csv(min1,"ACS1418_USA_PUMA_min_by_State_1.csv")
write.csv(max1,"ACS1418_USA_PUMA_max_by_State_1.csv")
write.csv(pumas,"ACS1418_USA_PUMA_All_1.csv")
sum2 <- pumas %>%
group_by(State) %>%
summarize_at("TotalPop_E",
list(name=sum))
#------------------------------------------------------------------------------------
csa
<- get_acs(survey="acs5", year=2018, geography =
"combined statistical area",
show_call =
TRUE,output="wide", variables = selvars)
csa$Geography_Name <- "csa"
#------------------------------------------------------------------------------------
msamisa
<- get_acs(survey="acs5", year=2018, geography =
"metropolitan statistical area/micropolitan statistical area",
show_call = TRUE,output="wide",
variables = selvars)
msamisa$Geography_Name <-
"msamisa"
#------------------------------------------------------------------------------------
zcta
<- get_acs(survey="acs5", year=2018, geography =
"zcta",
show_call = TRUE,output="wide",
variables = selvars)
zcta$Geography_Name <- "zcta"
#------------------------------------------------------------------------------------
# State Senate and House aren't working
...returns an API error (unknown/unsupported geography)
statesenate
<- get_acs(survey="acs5", year=2018, geography =
"state legislative district (upper chamber)",
show_call =
TRUE,output="wide", variables = selvars)
statesenate$Geography_Name <-
"statesenate"
#------------------------------------------------------------------------------------
statehouse
<- get_acs(survey="acs5", year=2018, geography =
"state legislative district (lower chamber)",
show_call =
TRUE,output="wide", variables = selvars)
statehouse$Geography_Name <- "statehouse"
#------------------------------------------------------------------------------------
This concludes
Example #4: ���exploring tidycensus geography.���