I have a dataset where the variables look like this:
latitude longitude latitude1 longitude1 latitude2 longitude2 latitude3 longitude3
until you reach latitude99 and longitude99.
What I wish to do is calculate the distance between latitude and longitude and each of the pairs from 1 to 99. For example:
distance1 = geodist(latitude, longitude, latitude1, longitude1)
distance2 = geodist(latitude, longitude, latitude2, longitude2)
distance99 = geodist(latitude, longitude, latitude99, longitude99)
Obviously I do not want to manually type out each distance variable until distance99, is there a faster way to do this? Thank you.
Use arrays:
data want;
array lat_ latitude1-latitude99;
array lon_ longitude1-longitude99;
array dist_ distance1-distance99;
set myDataset;
do i = 1 to dim(dist_);
dist_{i} = geodist(latitude, longitude, lat_{i}, lon_{i});
end;
drop i;
run;
(untested)
Use arrays:
data want;
array lat_ latitude1-latitude99;
array lon_ longitude1-longitude99;
array dist_ distance1-distance99;
set myDataset;
do i = 1 to dim(dist_);
dist_{i} = geodist(latitude, longitude, lat_{i}, lon_{i});
end;
drop i;
run;
(untested)
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.