I’ve just released a new version of my
acs package for working with the U.S. Census American Community Survey data in R, available on CRAN. The current version 0.8 includes all the original version 0.6 code, plus a whole lot more features and fixes. Some highlights:
- An improved
read.acsfunction for importing data downloaded from the Census American FactFinder site.
cbindfunctions to help create larger acs objects from smaller ones.
- A new
summethod to aggregate rows or columns of ACS data, dealing correctly with both estimates and standard errors.
- A new
applymethod to allow users to apply virtually any function to each row or column of an acs data object.
- A snazzy new
plotmethod, capable of plotting both density plots (for estimates of a single geography and variable) and multiple estimates with errors bars (for estimates of the same variable over multiple geographies, or vice versa). See sample plots below.
- New functions to deal with adjusting the nominal values of currency from different years for the purpose of comparing between one survey and another. (See
currency.yearin the documentation.)
- A new tract-level dataset from the ACS for Lawrence, MA, with dollar value currency estimates (useful to show off the aforementioned new currency conversion functions).
- A new
promptmethod to serve as a helper function when changing geographic rownames or variable column names.
- Improved documentation on the
acsclass and all of these various new functions and methods, with examples.
With this package, once you’ve found and downloaded your data from FactFinder, you can read it into
R with a single command, aggregate multiple tracts into a neighborhood with another, generate a table of estimates and confidence intervals for your neighborhood with a third command, and a produce a print-ready plot of your data (complete with error bars for the margins of error) with a fourth:
my.data=read.acs("some_data.csv") my.neighborhood=apply(my.data, FUN="sum", MARGIN=1, agg.term="My.Neighborhood") confint(my.neighborhood, conf.level=.95) plot(my.neighborhood, col="blue", err.col="violet", pch=16)
Already this package has come a long way, in large part thanks to the input of R users, so please check it out and let me know what you think — and how I can make it better.