Nothing
#' Subset results to those within specified area around zip code.
#'
#' @param sccall Current list of parameters carried forward from prior
#' functions in the chain (ignore)
#' @param zip A 5-digit zipcode
#' @param distance An integer distance in miles or kilometers
#' @param km A boolean value set to \code{TRUE} if distance should be
#' in kilometers (default is \code{FALSE} for miles)
#' @section Note: Zip codes with leading zeros (Northeast) can be
#' called either using a string (\code{'02111'}) or as a numeric
#' (\code{02111}). R will drop the leading zero from the second
#' version, but \code{sc_zip()} will add it back before the
#' call. The shortened version without the leading zero may also
#' be used (2111 and '2111' both become '02111'), but is not
#' recommended for clarity.
#' @examples
#' \dontrun{
#' sc_zip(37203)
#' sc_zip(37203, 50)
#' sc_zip(37203, 50, km = TRUE)
#' sc_zip('02111') # 1. Using string
#' sc_zip(02111) # 2. Dropped leading zero will be added
#' sc_zip(2111) # 3. Will become '02111' (not recommended)
#' }
#' @export
sc_zip <- function(sccall, zip, distance = 25, km = FALSE) {
suppressWarnings({
## check first argument
confirm_chain(sccall)
## check second argument
if (missing(zip)) {
stop('Must provide a 5-digit zip code.', call. = FALSE)
}
if (suppressWarnings(is.na(as.numeric(zip)))) {
stop('Zip code must contain only digits.', call. = FALSE)
}
if (nchar(zip) > 5) {
stop('Zip codes cannot be longer than 5 digits.', call. = FALSE)
}
if (nchar(zip) < 5) {
zip <- sprintf('%05d', zip)
message(paste('Note: Zip code has fewer than 5 characters.',
'Leading zero(s) added.'))
}
## check third argument
if (suppressWarnings(is.na(as.numeric(distance)))) {
stop('Distance may only contain digits.', call. = FALSE)
}
## add to stub
stub <- '&_zip=' %+% zip %+% '&_distance=' %+% distance
if (km) {
sccall[['zip']] <- stub %+% 'km'
} else {
sccall[['zip']] <- stub
}
sccall
})
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.