首页 > 解决方案 > sas中的欧几里得距离公式

问题描述

在此处输入图像描述

嗨,我想在 sas 中实现这个公式,我有 q1 和 p1 的值,它们是客户坐标,q2 和 p2 是商店坐标。通过使用这个公式,我想计算商店和客户之间的距离。

所以因为我用过这个

DATA D2.FINAL;
SET D2.final;
DIST = SQRT(((q1 - p1)*(q1 - p1))+((q2 - p2)*(q2 - p2))); 
RUN;

我认为这可能不是正确的方法。

标签: sas

解决方案


使用GEODIST()内置函数

data _null_;
   distance=geodist(30.68, -88.25, 35.43, -82.55, 'M');
   put 'Distance = ' distance 'miles';
run;

SAS 将以下输出写入日志:

距离 = 465.29081088 英里

备选方案 1:如果您有每个位置的邮政编码,则使用zipcitydistance()函数。它不像纬度和经度那样具体,但很容易获得。

备选方案 2:如果您想要驾驶时间距离,此线程中的最后一篇文章说明了如何使用 Google API 获得它。您将需要一个 API 密钥,并且 Google 会每月提供一定数量的免费积分。如果您超出该金额,您将不得不支付。您必须输入信用卡,但您可以将其设置为不向您收费,除非您愿意。


推荐阅读