【发布时间】:2019-08-19 20:51:30
【问题描述】:
我想知道计算两个美国邮政编码列之间距离(以英里为单位)的最有效方法是使用 R。
我听说过 geosphere 包,用于计算邮政编码之间的差异,但不完全理解,想知道是否还有其他方法。
例如,假设我有一个看起来像这样的数据框。
ZIP_START ZIP_END
95051 98053
94534 94128
60193 60666
94591 73344
94128 94128
94015 73344
94553 94128
10994 7105
95008 94128
我想创建一个如下所示的新数据框。
ZIP_START ZIP_END MILES_DIFFERENCE
95051 98053 x
94534 94128 x
60193 60666 x
94591 73344 x
94128 94128 x
94015 73344 x
94553 94128 x
10994 7105 x
95008 94128 x
其中 x 是两个邮政编码之间的英里数差。
计算这个距离的最佳方法是什么?
这是创建示例数据框的 R 代码。
df <- data.frame("ZIP_START" = c(95051, 94534, 60193, 94591, 94128, 94015, 94553, 10994, 95008), "ZIP_END" = c(98053, 94128, 60666, 73344, 94128, 73344, 94128, 7105, 94128))
如果您有任何问题,请告诉我。
感谢任何建议。
感谢您的帮助。
【问题讨论】:
-
给定
"I have heard of the geosphere package for computing the difference between zipcodes",你见过哪些例子可以做到这一点,你尝试了什么,什么不起作用?关于 SO 的问题似乎只是要求某人做你的工作并没有引起很多关注(并且被否决)。 SO 用于在您编写的程序上寻求编程帮助。 -
有几种网络服务可以做到这一点,但它们的 API 通常仅限于免费使用和/或需要注册。但是鉴于有一个
zipcode包(每个邮政编码都有纬度和经度),您应该尝试理解geosphere中的distHaversine方法。这不是很复杂 - here's a code example.
标签: r tidyverse distance zipcode geosphere