Dnes se budeme zabývat makry SAS pro začátečníky a tím, jak nám makra SAS usnadňují život tím, že snižují nadbytečnost nebo opakování kódu. Makra SAS poskytují neuvěřitelný způsob, jak usnadnit a zautomatizovat určitý proces. Ukážeme si zde různé proměnné maker SAS, funkce maker v programovacím jazyce SAS. Navíc se naučíme Komponenty kódu SAS Makra a některé výhody SAS Makra
Podívejme se, jak SAS Makro funguje.
Nestávejte se zastaralými & Získejte růžový lístek
Sledujte DataFlair na Google News & Zůstaňte ve hře
1. Co je to makro SAS?
Makra v podstatě pomáhají opakovaně používat kód na různých místech vícekrát, aniž byste museli psát celý kód znovu a znovu. To nejen šetří čas, ale vede k bezchybnému kódu.
Pochopíme to na příkladu:
proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;
Výše uvedený kód SAS je napsán pro získání údajů na úrovni politiky pro 09.-14. září a řekněme, že uživatel potřebuje tento kód spouštět denně po změně data (na obou místech) na aktuální datum.
Podívejme se nyní na stejný kód pomocí maker SAS.
Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;
V tomto případě uživatel nemusí zadávat hodnotu pro aktuální datum. Kód automaticky vybere aktuální datum ze systému.
Nezapomeňte si přečíst – Funkce SAS
Výhody použití maker SAS
Makra SAS nám umožňují:-
- Ulehčit si práci tím, že podobný kód po jeho definování opakovaně použijeme.
- Provádět změny v proměnné na jednom místě a promítnout je na více místech.
- Data vašeho programu řízená, tj. nechat SAS rozhodnout, co má dělat, na základě skutečných hodnot dat
Především pomáhá snížit úsilí potřebné ke čtení a psaní kódu SAS.
Složky kódu maker SAS
Kód maker SAS má dvě složky: Makra a makroproměnné. V programu SAS se označují různě:-
- &Název se vztahuje k makroproměnné
- %Název se vztahuje k makru
Makroproměnné SAS
Makroproměnná je stejná jako standardní proměnná s tím rozdílem, že její hodnota není datový soubor a má pouze jednoznakovou hodnotu. Hodnotou makroproměnné může být jméno proměnné, číslice nebo jakýkoli text, který chcete v programu nahradit.
Obsah makroproměnné může být lokální nebo globální, podle toho, jak jsme ji definovali. Pokud je definována uvnitř makroprogramu, je její rozsah lokální (dostupný pouze pro daný makrokód). Pokud jsme ji však definovali vně (v hlavním těle), pak ji můžeme použít kdekoli v programu SAS.
Pro vytvoření a přiřazení hodnoty makroproměnným používáme příkaz %LET.
% LET <Název makroproměnné>=Hodnota;
Hodnota makroproměnné v příkazu %Let může být libovolný řetězec a má následující vlastnosti:-
- Může mít libovolnou délku od 0 do 65,534 znaků
- Číselné hodnoty jsou také uloženy jako řetězec znaků
- Matematické výrazy se nevyhodnocují
- Označení uvozovek může být také uloženo jako součást hodnoty
- Před přiřazením se odstraní úvodní a koncové mezery
SAS Makroproměnné se odkazují pomocí ampersandu (&), za kterým následuje název makroproměnné.
Nezapomeňte zkontrolovat – SAS String Functions nebo Character Functions
&<Název makroproměnné>
Příklad:-
Název makroproměnné
Můžeme také deklarovat více makroproměnných a používat je na různých místech kódu SAS. Makroproměnné se nerozlišují, pokud k nim přistupujeme v jednoduchých uvozovkách. Proto bychom pro odkaz na ně měli použít dvojité uvozovky.
;
makroproměnná-1 <…makroproměnná-n>
je název jedné nebo více makroproměnných SAS.
Příkaz %GLOBAL vytváří jednu nebo více globálních makroproměnných a přiřazuje jim nulové hodnoty. Globální makroproměnné jsou proměnné, které jsou k dispozici během celého provádění relace nebo úlohy SAS.
Makroproměnná vytvořená příkazem %GLOBAL má nulovou hodnotu, dokud jí nepřiřadíte nějakou jinou hodnotu. Pokud globální makroproměnná již existuje a vy ji zadáte v příkazu %GLOBAL, zůstane stávající hodnota nezměněna.
Musíte se naučit – Co je to syntaxe SAS a jak je můžeme používat
ii. Místní makroproměnné SAS
Syntaxe místní makroproměnné v programování SAS:
%LOCAL makroproměnná-1 <…makroproměnná-n>;
makroproměnná-1 <…makroproměnná-n>
je název jedné nebo více makroproměnných
Příkaz %LOCAL vytváří jednu nebo více lokálních makroproměnných. Makroproměnná vytvořená příkazem %LOCAL má nulovou hodnotu, dokud jí nepřiřadíte nějakou jinou hodnotu. Lokální makroproměnné jsou proměnné, které jsou k dispozici pouze během provádění makra, v němž jsou definovány.
Příkaz %LOCAL slouží k tomu, aby makroproměnné vytvořené dříve v programu nebyly neúmyslně změněny hodnotami přiřazenými proměnným se stejným názvem v aktuálním makru. Pokud lokální proměnná v makru již existuje a vy ji zadáte v příkazu %LOCAL, zůstane stávající hodnota nezměněna.
Pochopení pojmu – Datová sada SAS – Speciální & Vestavěná datová sada v SAS
iii. Porovnání – globální vs. lokální proměnné
- Příkaz %LOCAL i příkaz %GLOBAL vytvářejí makroproměnné s určitým rozsahem. Příkaz %LOCAL však vytváří lokální makroproměnné, které existují pouze během provádění makra, které proměnnou obsahuje, a příkaz %GLOBAL vytváří globální makroproměnné, které existují po celou dobu trvání relace nebo úlohy.
- Pokud definujete lokální makroproměnnou a globální makroproměnnou se stejným názvem, makroprostředek použije hodnotu lokální proměnné během provádění makra, které tuto lokální proměnnou obsahuje. Pokud se makro, které obsahuje lokální proměnnou, neprovádí, použije makroprostředek hodnotu globální proměnné.
Funkce maker SAS
Tyto funkce maker SAS mají podobnou syntaxi ve srovnání s obdobnými funkcemi v datových krocích a také vracejí výsledky podobným způsobem.
i.Funkce %UPCASE()
Pomocí této funkce převedeme velikost písmen na velká:
Syntaxe:- %UPCASE (Argument)
Příklad:-
%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;
Vypíše nadpis jako „TOTO JE DETAIL KRAJINY“.
Prozkoumejte špičkové aplikace programování SAS
ii. Funkce %SUBSTR()
Tato funkce vrátí zadaný počet znaků od zadané pozice.
Syntaxe:- %SUBSTR (argument, pozice )
Pokud není zadán počet znaků, funkce %SUBSTR vrátí znaky od zadané pozice až do konce řetězce.
Příklad:-
%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Shrnutí
Tedy v tomto výukovém kurzu maker SAS. Doufám, že jste se naučili některé nové způsoby manipulace s daty v systému SAS. Začleněním maker SAS do svého programu nyní budete moci ušetřit spoustu času. Zůstaňte naladěni, abyste se dozvěděli více takových zajímavých věcí v SASu.