A mai napon a SAS makrókról kezdőknek beszélünk, és arról, hogy a SAS makró hogyan könnyíti meg az életünket a kód redundanciájának vagy ismétlődésének csökkentésével. A SAS makró hihetetlen módot biztosít egy folyamat egyszerűvé és automatikussá tételére. Itt látni fogjuk a különböző SAS makró változókat, a makrók funkcióit a SAS programozási nyelvben. Továbbá megismerjük a SAS Macro kód összetevőit és a SAS Macro néhány előnyét
Lássuk, hogyan működik a SAS Macro.
Ne váljon elavulttá & get a Pink Slip
Follow DataFlair on Google News & Stay ahead of the game
1. Mi az a SAS makró?
A makrók alapvetően segítenek a kód többszöri, különböző helyeken történő újrafelhasználásában anélkül, hogy a teljes kódot újra és újra be kellene gépelni. Ez nemcsak időt takarít meg, hanem hibamentes kódot is eredményez.
Magyarázzuk ezt egy példán keresztül:
proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;
A fenti SAS kódot a 09-Sep-14-es politika szintű adatok kinyerésére írtuk, és tegyük fel, hogy a felhasználónak naponta kell futtatnia ezt a kódot, miután a dátumot (mindkét helyen) az aktuális dátumra változtatta.
Most nézzük meg ugyanezt a kódot SAS-makrók használatával.
Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;
Ez esetben a felhasználónak nem kell megadnia az aktuális dátum értékét. A kód automatikusan kiválasztja az aktuális dátumot a rendszerből.
Ne felejtsük el elolvasni – SAS függvények
A SAS makró használatának előnyei
A SAS makró lehetővé teszi számunkra:-
- Megkönnyíti a munkánkat, hogy hasonló kódot többször újra felhasználhatunk, miután egyszer definiáltuk.
- Egy változóban egyetlen helyen változtathatunk és több helyen is megjeleníthetjük.
- A programunk adatai vezéreltek, azaz hagyjuk, hogy a SAS az aktuális adatértékek alapján döntse el, hogy mit tegyen
Mindenekelőtt segít csökkenteni a SAS kód olvasásához és írásához szükséges erőfeszítéseket.
A SAS makro kód összetevői
A SAS makro kódnak két összetevője van: Makrók és makróváltozók. Egy SAS programban másképp hivatkoznak rájuk:-
- &A név a makrováltozóra utal
- %Név a makróra utal
SAS makrováltozók
A makrováltozó ugyanolyan, mint a hagyományos változó, kivéve, hogy értéke nem adathalmaz, és csak egyetlen karakteres értékkel rendelkezik. A makrováltozó értéke lehet egy változó neve, egy szám, vagy bármilyen szöveg, amit helyettesíteni akarunk a programunkban.
A makrováltozó hatókör lehet lokális vagy globális, attól függően, hogy hogyan definiáltuk. Ha egy makróprogramon belül definiáljuk, akkor a hatókör lokális (csak az adott makrokód számára elérhető). Ha azonban kívül definiáltuk (a fő szövegtestben), akkor a SAS programban bárhol használhatjuk.
A %LET utasítást használjuk a makrováltozók létrehozására és érték hozzárendelésére.
% LET <Makrováltozó neve>=érték;
A %Let utasításban a makrováltozó értéke bármilyen karakterlánc lehet, és a következő tulajdonságokkal rendelkezik:-
- Hossza tetszőleges lehet 0 és 65 között,534 karakter
- A numerikus értékek karakterláncként is tárolhatók
- A matematikai kifejezések nem kerülnek kiértékelésre
- Az idézőjel az érték részeként is tárolható
- A hozzárendelés előtt a vezető és az utolsó üres részek eltávolításra kerülnek
SAS A makrováltozókra úgy hivatkozhatunk, hogy a makrováltozó neve után egy zárójelet (&) használunk.
Ne felejtsük el ellenőrizni – SAS karakterláncfüggvények vagy karakterfüggvények
&<Makrováltozó neve>
Példa:-
Makrováltozó neve
Más makrováltozót is deklarálhatunk és a SAS kódban különböző helyeken használhatjuk. A makrováltozó nem oldódik fel, ha szimpla idézőjeleken belül érjük el őket. Ezért a hivatkozásukhoz kettős idézőjeleket kell használnunk.
;
macro-változó-1 <…macro-változó-n>
egy vagy több SAS makrováltozó neve.
A %GLOBAL utasítás egy vagy több globális makrováltozót hoz létre, és null értékeket rendel a változókhoz. A globális makrováltozók olyan változók, amelyek a SAS munkamenet vagy feladat teljes végrehajtása alatt rendelkezésre állnak.
A %GLOBAL utasítással létrehozott makrováltozó null értékkel rendelkezik, amíg nem rendel hozzá más értéket. Ha egy globális makrováltozó már létezik, és ezt a változót egy %GLOBAL utasításban adja meg, a meglévő érték változatlan marad.
Must learn – Mi a SAS szintaxis és hogyan használhatjuk őket
ii. SAS helyi makrováltozók
A helyi makrováltozók szintaxisa a SAS programozásban:
%LOCAL makrováltozó-1 <…makrováltozó-n>;
macro-változó-1 <…makrováltozó-n>
egy vagy több makrováltozó neve
A %LOCAL utasítás egy vagy több helyi makrováltozót hoz létre. A %LOCAL utasítással létrehozott makrováltozó értéke nulla, amíg más értéket nem rendel hozzá. A helyi makrováltozók olyan változók, amelyek csak annak a makrónak a végrehajtása alatt állnak rendelkezésre, amelyben definiálták őket.
A %LOCAL utasítással biztosíthatjuk, hogy a programban korábban létrehozott makrováltozókat ne változtassák meg véletlenül az aktuális makróban azonos nevű változókhoz rendelt értékek. Ha egy helyi makróváltozó már létezik, és ezt a változót a %LOCAL utasításban adja meg, a meglévő érték változatlan marad.
A fogalom megértése – SAS adathalmaz – Speciális & Beépített adathalmaz a SAS-ban
iii. Összehasonlítás – Globális vs. helyi változók
- Mind a %LOCAL utasítás, mind a %GLOBAL utasítás meghatározott hatókörű makrováltozókat hoz létre. A %LOCAL utasítás azonban olyan helyi makrováltozókat hoz létre, amelyek csak a változót tartalmazó makró végrehajtása során léteznek, míg a %GLOBAL utasítás olyan globális makrováltozókat hoz létre, amelyek a munkamenet vagy a feladat időtartamára léteznek.
- Ha egy helyi és egy globális makrováltozót azonos névvel definiál, a makróeszköz a helyi változót tartalmazó makró végrehajtása során a helyi változó értékét használja. Amikor a helyi változót tartalmazó makró nem hajtódik végre, a makróeszköz a globális változó értékét használja.
A SAS makrók funkciói
A SAS makró függvényei hasonló szintaxissal rendelkeznek, mint az adatlépésekben található megfelelő függvények, és az eredményeket is hasonló módon adják vissza.
i.%UPCASE() függvény
Ezt a függvényt használjuk a betűk nagybetűvé alakítására:
Szintaxis:- %UPCASE (argumentum)
Példa:-
%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;
Azt a címet írja ki, hogy “EZ AZ ORSZÁG DETAILJA”.
Tárja fel a SAS programozás legfontosabb alkalmazásait
ii. %SUBSTR() függvény
Ez a függvény a megadott karakterek számát adja vissza a megadott pozíciótól.
Szintaxis:- %SUBSTR (argument, position )
Ha nem adunk meg karakterszámot, a %SUBSTR függvény a karaktereket az adott pozíciótól a karakterlánc végéig adja vissza.
Példa:-
%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Összefoglaló
Ezekben a SAS makrók oktatóanyagban tehát. Remélem, megtanultál néhány új módszert az adatok manipulálására a SAS-ban. Mostantól sok időt takaríthat meg azzal, hogy a SAS makrókat beépíti a programjába. Maradjon velünk, hogy még több ilyen érdekes dolgot tanulhasson a SAS-ben.