Match an addr vector to TIGER street ranges
Source:R/addr_tiger_match.R
addr_match_tiger_street_ranges.Rd
Match an addr vector to TIGER street ranges
Arguments
- x
an addr vector to match
- county
character string of county identifier
- year
year of tigris product
- street_only_match
for addresses that match a TIGER street name, but have street numbers that don't intersect with ranges of potential street numbers, return
"none"
,"all"
, or the"closest"
range geographies- summarize
optionally summarize matched street ranges as their union or centroid
Value
a list of matched tigris street range tibbles;
a NULL value indicates that no street name was matched; if street_only_match
is FALSE,
a street range tibble with zero rows indicates that although a street was matched,
there was no range containing the street number
Details
To best parse street names and types, this function appends dummy address components just
for the purposes of matching tiger street range names (e.g., 1234 {tiger_street_name} Anytown AB 00000
)
Examples
my_addr <- as_addr(c("224 Woolper Ave", "3333 Burnet Ave", "33333 Burnet Ave", "609 Walnut St"))
addr_match_tiger_street_ranges(my_addr, county = "39061", street_only_match = "all")
#> $`224 Woolper Avenue`
#> # A tibble: 1 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103924294 LINESTRING (-84.511197 39.149684, -84.511752 39.149788,… 100 299
#>
#> $`3333 Burnet Avenue`
#> # A tibble: 2 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103925697 LINESTRING (-84.500403 39.14089, -84.500289 39.141892) 3301 3399
#> 2 103925699 LINESTRING (-84.500525 39.139737, -84.500403 39.14089) 3247 3398
#>
#> $`33333 Burnet Avenue`
#> # A tibble: 20 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103925448 LINESTRING (-84.499935 39.145118, -84.499813 39.146256) 3500 3599
#> 2 103925451 LINESTRING (-84.50004 39.144148, -84.499935 39.145118) 3401 3499
#> 3 103925453 LINESTRING (-84.500084 39.143783, -84.50004 39.144148) 3432 3466
#> 4 103925455 LINESTRING (-84.500181 39.142878, -84.500084 39.143783) 3400 3430
#> 5 103925697 LINESTRING (-84.500403 39.14089, -84.500289 39.141892) 3301 3399
#> 6 103925699 LINESTRING (-84.500525 39.139737, -84.500403 39.14089) 3247 3398
#> 7 103925700 LINESTRING (-84.500652 39.138641, -84.500525 39.139737) 3235 3298
#> 8 103925701 LINESTRING (-84.500867 39.136617, -84.500666 39.13853) 3200 3234
#> 9 103925703 LINESTRING (-84.500918 39.136124, -84.500867 39.136617) 3100 3199
#> 10 103971004 LINESTRING (-84.50102 39.135173, -84.500943 39.135883) 3101 3117
#> 11 103925748 LINESTRING (-84.501259 39.133087, -84.50102 39.135173) 2900 3099
#> 12 103965385 LINESTRING (-84.501494 39.130948, -84.501314 39.132613) 2800 2899
#> 13 103925898 LINESTRING (-84.501709 39.128975, -84.501494 39.130948) 2600 2799
#> 14 103925900 LINESTRING (-84.501777 39.128388, -84.501709 39.128975) 2601 2621
#> 15 103925902 LINESTRING (-84.50188 39.12747, -84.501777 39.128388) 2550 2598
#> 16 103925903 LINESTRING (-84.501832 39.126684, -84.501914 39.127034… 2500 2599
#> 17 103925914 LINESTRING (-84.502386 39.122796, -84.502278 39.123766) 2300 2399
#> 18 103925934 LINESTRING (-84.502601 39.120814, -84.502386 39.122796) 2200 2299
#> 19 103925937 LINESTRING (-84.502931 39.117861, -84.502601 39.120814) 2000 2199
#> 20 103925750 LINESTRING (-84.501314 39.132613, -84.501259 39.133087) 2901 2999
#>
#> $`609 Walnut Street`
#> # A tibble: 2 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103926906 LINESTRING (-84.460918 39.228063, -84.46269 39.228071) 600 699
#> 2 103936642 LINESTRING (-84.51169 39.102695, -84.511861 39.103314) 600 621
#>
addr_match_tiger_street_ranges(my_addr, county = "39061", summarize = "centroid")
#> $`224 Woolper Avenue`
#> # A tibble: 1 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103924294 POINT (-84.5148163 39.1499943) 100 299
#>
#> $`3333 Burnet Avenue`
#> # A tibble: 1 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103925697-103925699 POINT (-84.5004091 39.1408146) 3247 3399
#>
#> $`33333 Burnet Avenue`
#> # A tibble: 0 × 4
#> # ℹ 4 variables: TLID <chr>, s2_geography <s2_geography>, from <dbl>, to <dbl>
#>
#> $`609 Walnut Street`
#> # A tibble: 1 × 4
#> TLID s2_geography from to
#> <chr> <s2_geography> <dbl> <dbl>
#> 1 103926906-103936642 POINT (-84.4775955 39.1885963) 600 699
#>
addr_match_tiger_street_ranges(my_addr, county = "39061",
street_only_match = "closest", summarize = "centroid") |>
dplyr::bind_rows() |>
dplyr::mutate(census_bg_id = s2_join_tiger_bg(s2::as_s2_cell(s2_geography)))
#> # A tibble: 4 × 5
#> TLID s2_geography from to census_bg_id
#> <chr> <s2_geography> <dbl> <dbl> <chr>
#> 1 103924294 POINT (-84.5148163 39.1499943) 100 299 390610070002
#> 2 103925697-103925699 POINT (-84.5004091 39.1408146) 3247 3399 390610270002
#> 3 103925448 POINT (-84.499874 39.145687) 3500 3599 390610068002
#> 4 103926906-103936642 POINT (-84.4775955 39.1885963) 600 699 390610271003