Получить переписной участок от Координаты

У меня есть набор данных с координатами долготы и широты. Я хочу получить соответствующий переписной участок. Есть ли набор данных или API, которые позволили бы мне сделать это?

Мой набор данных выглядит так:

       lat       lon   
1 40.61847 -74.02123   
2 40.71348 -73.96551   
3 40.69948 -73.96104    
4 40.70377 -73.93116   
5 40.67859 -73.99049   
6 40.71234 -73.92416   

Я хочу добавить столбец с соответствующим участком переписи.

Конечный результат должен выглядеть примерно так (это не правильные цифры, просто пример).

       lat       lon     Census_Tract_Label   
1 40.61847 -74.02123                   5.01
2 40.71348 -73.96551                     20
3 40.69948 -73.96104                     41
4 40.70377 -73.93116                  52.02
5 40.67859 -73.99049                     58
6 40.71234 -73.92416                     60

1 ответ

Решение

tigris пакет включает в себя функцию под названием call_geolocator_latlon это должно делать то, что вы ищете. Вот код, использующий

    > coord <- data.frame(lat = c(40.61847, 40.71348, 40.69948, 40.70377, 40.67859, 40.71234),
    +                     long = c(-74.02123, -73.96551, -73.96104, -73.93116, -73.99049, -73.92416))
    > 
    > coord$census_code <- apply(coord, 1, function(row) call_geolocator_latlon(row['lat'], row['long']))
    > coord
           lat      long     census_code
    1 40.61847 -74.02123 360470152003001
    2 40.71348 -73.96551 360470551001009
    3 40.69948 -73.96104 360470537002011
    4 40.70377 -73.93116 360470425003000
    5 40.67859 -73.99049 360470077001000
    6 40.71234 -73.92416 360470449004075

Насколько я понимаю, 15-значный код - это несколько кодов, вместе взятых (первые два - штат, следующие три - графство, а следующие шесть - урочище). Чтобы получить код переписи, я бы просто использовал substr функция, чтобы вытащить эти шесть цифр.

    > coord$census_tract <- substr(coord$census_code, 6, 1)
    > coord
           lat      long     census_code census_tract
    1 40.61847 -74.02123 360470152003001       015200
    2 40.71348 -73.96551 360470551001009       055100
    3 40.69948 -73.96104 360470537002011       053700
    4 40.70377 -73.93116 360470425003000       042500
    5 40.67859 -73.99049 360470077001000       007700
    6 40.71234 -73.92416 360470449004075       044900

Надеюсь, это поможет!

Другие вопросы по тегам