Skip to content

Instantly share code, notes, and snippets.

@sdaza
Last active August 29, 2015 14:17
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 sdaza/a2d0ba07ccde9be17934 to your computer and use it in GitHub Desktop.
Save sdaza/a2d0ba07ccde9be17934 to your computer and use it in GitHub Desktop.
examples ACSR
# EXAMPLES USING PACKAGE ACSR
# AUTHOR: SEBASTIAN DAZA
# March 23, 2015, 8:19 AM
# INSTALL LAST VERSION OF DATA.TABLE AND ACS PACKAGE (YOU HAVE TO INSTALL DEVTOOLS BEFORE!)
# I ASSUME ACS IS ALREADY INSTALLED!
install.packages("devtools")
devtools::install_github("Rdatatable/data.table", build_vignettes = FALSE)
# INSTALL MY PACKAGE
devtools::install_github("sdaza/acsr")
# LOAD MY PACKAGE
library(acsr)
?acsr # EXPLORE HELP FILES
?acsdata
?sumacs
# IMPORT EXCEL
# I SAVED THAT FILE AS CSV FIRST
setwd("/Users/sdaza/Documents/UWSociology/00Projects/Various/AppliedPopulationLab/") # MY DIRECTORY
api.key.install(key="926983368457604ed165dc0d2618e58152397d22") # MY KEY
# GET DATA FROM DAVE'S EXCEL SHEET
sheet <- fread("moe.csv")
str(sheet) # EXPLORE FILE
table(sheet$type)
# REMINDER OF LEVELS
# 40 State: state
# 50 County: county
# 60 County Subdivision: county.subdivision
# 140 Tract: tract
# 150 Block Group: block.group
# 500 Congressional: congressional.district
# 950 Elementary Districts: school.district.elementary
# 960 Secondary Districts: school.district.secondary
# DEFINE ALL POSSIBLE LEVELS FOR TESTING
levels <- c("state", "county", "county.subdivision", "tract", "block.group", "congressional.district",
"school.district.secondary", "school.district.elementary")
# GET DATA FOR ALL LEVELS AND VARIABLES USING FUNCTION ACSDATA
# THIS IS SLOW (ABOUT 30 MINUTES)
# SAVE THAT FILE FOR USING LATER
mydata <- acsdata(sheet[, formula], level = levels[1:2]) # ONLY TWO LEVELS
names(mydata)
mydata <- acsdata(sheet[, formula], level = levels) # ALL LEVELS, VERY SLOW
names(mydata)
# VARIABLES TO TEST
vars <- c("langspan0913", "walkoth0913", "childpov_5", "pcteducsom", "personhh5",
"speakspan", "pcgrinc30m", "struc10pl")
length(vars)
# SLOW
out1 <- sumacs(sheet[, formula],
sheet[, myfield],
method = sheet[, type],
level = levels, one.zero = TRUE)
# FASTER (3 LEVELS)
out2 <- sumacs(sheet[, formula],
sheet[, myfield],
method = sheet[, type],
level = levels[c(1,2,4)],, one.zero = TRUE)
str(out2)
######################
# CHECKS
######################
# LANGSPAN0913
i <- 1
constr <- sheet[myfield == vars[i], formula]
constr
(variables <- getvars(sheet[myfield == vars[i], formula]))
test1 <- sumacs(sheet[myfield == vars[i], formula],
vars[i],
method = sheet[myfield == vars[i], type],
level = levels[4], county = 1, tract = 950501, one.zero = FALSE)
test2 <- sumacs(sheet[myfield == vars[i], formula],
vars[i],
method = sheet[myfield == vars[i], type],
level = levels[4], county = 1, tract = 950501, one.zero = TRUE)
test3 <- sumacs(sheet[myfield == vars[i], formula],
vars[i],
method = "ratio",
level = levels[4], county = 1, tract = 950501, one.zero = FALSE)
test1
test2
test3
dt <- acs.fetch(geo = geo.make(state = "WI", county = 1, tract = 950501), variable = variables, endyear = 2013)
check1 <- divide.acs(dt[,1] + dt[,2] + dt[,3], dt[,4], method = "proportion")
check1
check1 <- divide.acs(dt[,1] + dt[,2] + dt[,3], dt[,4], method = "ratio")
check1
estimate(check1)
standard.error(dt)
# one.zero = FALSE
(sqrt((5.4711125^2 + 22.4924^2 + 5.4711125^2) - (0.0226390685640362^2 * 102.1277^2))/1546) * 1.645
# one.zero = TRUE
(sqrt((5.4711125^2 + 22.4924^2) - (0.0226390685640362^2 * 102.1277^2))/1546) * 1.645
# RATIO
(sqrt((5.4711125^2 + 22.4924^2 + 5.4711125^2) + (0.0226390685640362^2 * 102.1277^2))/1546) * 1.645
# PERSONHH5
i <- 5
constr <- sheet[myfield == vars[i], formula]
constr
(variables <- getvars(sheet[myfield == vars[i], formula]))
test1 <- sumacs(sheet[myfield == vars[i], formula],
vars[i],
method = sheet[myfield == vars[i], type],
level = levels[4], county = 1, tract = 950501, one.zero = FALSE)
test2 <- sumacs(sheet[myfield == vars[i], formula],
vars[i],
method = sheet[myfield == vars[i], type],
level = levels[4], county = 1, tract = 950501, one.zero = TRUE)
test1
test2
dt <- acs.fetch(geo = geo.make(state = "WI", county = 1, tract = 950501), variable = variables, endyear = 2013)
dt[,1] + dt[,2]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment