r-从坐标中检索人口普查区



我有一个包含经度和纬度坐标的数据集。我想检索相应的人口普查区。有没有数据集或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

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

我希望这能有所帮助!

相关内容

  • 没有找到相关文章

最新更新