Ich habe eine Funktion, die 2 Zahlen (geographische Koordinaten) zurückgeben sollte.
Kann die Funktion 2 Zahlen zurückgeben?in SAS proc fcmp Wie bekomme ich 2 Zahlen zurückgegeben
Hier ist meine Funktion ist (Ich brauche x und Y zurück)
proc fcmp outlib=common.functions.geo;
function latlng2lambert72(lat,lng);
LongRef = 0.076042943;
bLamb = 6378388 * (1 - (1/297));
aCarre = 6378388 ** 2;
eCarre = (aCarre - bLamb ** 2)/aCarre;
KLamb = 11565915.812935;
nLamb = 0.7716421928;
eLamb = sqrt(eCarre);
eSur2 = eLamb/2;
*conversion to radians;
lat_rad = (constant("pi")/180) * lat;
lng_rad = (constant("pi")/180) * lng;
eSinLatitude = eLamb * sin(lat_rad);
TanZDemi = (tan((constant("pi")/4) - (lat_rad/2))) *
(((1 + (eSinLatitude))/(1 - (eSinLatitude))) ** (eSur2));
RLamb = KLamb * ((TanZDemi) ** nLamb);
Teta = nLamb * (lng_rad - LongRef);
x = 150000 + 0.01256 + RLamb * sin(Teta - 0.000142043);
y = 5400000 + 88.4378 - RLamb * cos(Teta - 0.000142043);
*put x y ;
return (x);
*return (x*1000000000000 + y);
*return (x||'_'||y);
endsub;
quit;
data test;
lat = 50.817500;
lng = 4.374400;
x = latlng2lambert72(lat,lng);
run;
Ich denke, nicht aber dann ist die einzige Option, die ich sehen würde zwei Funktionen zu machen und hat eine die erste Nummer zurückkehren und die anderen gib die 2. Nummer zurück. Diese 2 Funktionen wären zu 99% identisch und ich möchte keinen Code duplizieren. Gibt es einen effizienteren Weg, dies zu erreichen?
(ich nicht wirklich verstehen, wie Funktionen arbeiten. Könnten sie zu diesem Zweck verwendet werden? Den gemeinsamen Code ausführen und nur 2 kurze Funktionen machen x und y zurück?)