The censusxy
package is designed to provide easy access
to the U.S. Census
Bureau Geocoding Tools in R
. censusxy
has
also been developed specifically with large data sets in mind - only
unique addresses are passed to the API for geocoding. If a data set
exceeds 1,000 unique addresses, it will be automatically subset into
appropriately sized API calls, geocoded, and then put back together so
that a single object is returned. There is also support for parallel
processing of requests, which can significantly shorten the time it
takes to batch geocode large numbers of addresses.
censusxy
is described in a 2021 paper in Transactions
in GIS by Chris and Branson - please cite the paper if you use
censusxy
in your work!
censusxy
now supports parallel processing on Windows
(macOS and Linux had support for this since v1.0.0
), thanks
to a PR from Christopher
Kenny, and an error that cropped up with macOS 12.4 when submitting
requests for parallel processing is addressedR
version 3.4 is now the minimum version supportedThe easiest way to get censusxy
is to install it from
CRAN:
install.packages("censusxy")
Alternatively, the development version of censusxy
can
be accessed from GitHub with remotes
:
# install.packages("remotes")
::install_github("chris-prener/censusxy") remotes
Since the package does not need sf
for its basic
functionality, it is a suggested dependency rather than a required one.
However, many users will want to map these data as sf
objects, and we therefore recommend users install sf
.
Windows and macOS users should be able to install sf
without significant issues unless they are building from source. Linux
users will need to install several open source spatial libraries to get
sf
itself up and running.
If you want to use these sf
, you can either install it
individually (faster) or install all of the suggested dependencies at
once (slower, will also give you a number of other packages you may or
may not want):
## install sf only
install.packages("sf")
## install all suggested dependencies
install.packages("censusxy", dependencies = TRUE)
The censusxy
package contains two data sets,
stl_homicides
(n = 1,812) and
stl_homicides_small
(n = 24), that can be used to
demonstrate the functionality of the package. The
stl_homicides_small
data is included specifically for quick
experimentation, as its small sample size ensures an expedient response
from the API.
To test censusxy
’s functionality, load the package and
either of the sample data sets:
library(censusxy)
<- stl_homicides data
There are two possible variable configurations (simple
and full
, specified using the output
argument), and two possible output class types (dataframe
and sf
, specified using the class
argument):
<- cxy_geocode(data, street = "street_address", city = "city", state = "state",
homicide_sf output = "simple", class = "sf")
If you request an sf
object, you easily preview the
results with the mapview
package:
> mapview::mapview(homicide_sf)
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.