Евклидова формула расстояния в сас - PullRequest
0 голосов
/ 29 марта 2020

enter image description here

Привет, я хочу реализовать эту формулу в sas, у меня есть значения для q1 & p1, которые являются координатами клиента, и q2 & p2, которые являются координатами магазина. Используя эту формулу, я хочу вычислить расстояние между магазином и покупателями.

, поэтому я использовал это

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

, которое, как я считаю, может быть неправильным.

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Используйте встроенную функцию GEODIST ()

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

SAS записывает в журнал следующие выходные данные:

Расстояние = 465,29081088 миль

Альтернатива 1: использует функцию zipcitydistance () , если у вас есть почтовые индексы для каждого местоположения. Он не так специфичен c, как широта и долгота, но легко доступен.

Альтернатива 2: Если вы хотите проезжать время в пути, последнее сообщение в этой теме иллюстрирует, как получить его с помощью Google API. Вам понадобится ключ API, и Google предоставляет определенное количество бесплатных кредитов в месяц. Если вы go сверх этой суммы, вам придется заплатить. Вы должны ввести кредитную карту, но вы можете установить, чтобы она не выставляла вам счет, если вы этого не хотите.

0 голосов
/ 29 марта 2020

DIST_FROM_STORE = (SQRT (((STORE_X - CUSTOMER_X) ** 2) + ((STORE_Y - CUSTOMER_Y) ** 2)));

это сработало для меня

...