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
我希望这会有所帮助!
推荐阅读
- enums - 有没有更简单的方法可以使枚举常量可见?
- sql - 此依赖项的独立顺序 ID 的超集表(1 对 1 关系)
- django - Django:如何根据当前用户使用 APIView 从多个地址实例中删除一个
- python - 您将如何使用以下信息使用 Python 创建代码?
- python - 如果先前已添加,则在列表中添加下一个元素
- css - 从浏览器打印在 PDF 中生成“ft”和“ti”作为单个字符
- javascript - 如何将 jsdoc 类型添加到解构变量?(VS代码)
- python - 使用 BeautifulSoup 访问 Yelp 评论页面的“aria-label”
- c++ - 如何在 C++ 中调试内部函数时观察全局数组发生了什么?
- python - 提高python中指数字符串的效率