I have the following data
PS Lat Long SLOT
abc 75.8233 26.2454 1
abc 75.4785 26.4589 1
abc 75.5495 26.4679 1
abc 75.4875 26.8997 2
abc 75.5649 26.7268 2
abc 75.5666 26.8647 2
xyz 75.4875 26.3842 1
xyz 75.4937 26.5877 1
xyz 75.8473 26.3971 1
xyz 75.7861 26.6884 2
Now I want a new column which shows the distances in the following way:
All the points with PS=abc and Slot=1 should have their distances calculated from the first point of this group(i.e., 75.8233 26.2454), similarly all the points with PS=abc and Slot=2 should have their distances calculated from the first point of this group(i.e., 75.4875 26.8997) and so on.
So please suggest me a solution for this.
Check out the GEODIST function
Assuming your data are sorted by PS and Slot as implied by the example:
data want; set have; by ps slot; retain firstLat Firstlong; if first.slot then do; firstlat=lat; firstlong=long; end; Dist = geodist(firstlat,firstlong,lat,long); drop firstlat firstlong; run;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.