SAS Makroer for begyndere – Makrovariabler og funktioner

I dag diskuterer vi SAS makroer for begyndere og hvordan SAS makroer gør vores liv lettere ved at reducere redundans eller gentagelse af en kode. SAS Macro giver en utrolig måde at gøre en proces nem og automatisk. Her vil vi se forskellige SAS Macro Variabler, funktioner af Macro i SAS Programmeringssprog. Desuden lærer vi Komponenter i SAS Macro kode og nogle fordele ved SAS Macro

Lad os se hvordan SAS Macro virker.

Bliv ikke forældet & få en Pink Slip
Følg DataFlair på Google News & Hold dig på forkant med spillet

1. Hvad er SAS-makro?

Makroer hjælper grundlæggende med at genbruge kode på forskellige steder flere antal gange uden at skulle skrive hele koden igen og igen. Dette sparer ikke kun tid, men resulterer også i fejlfri kode.

Lad os forstå dette med et eksempel:

proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;

Overstående SAS-kode er skrevet til at udtrække detaljer på politikniveau for 09-Sep-14, og lad os sige, at brugeren skal køre denne kode på daglig basis efter at have ændret datoen (begge steder) til den aktuelle dato.

Lad os nu se på den samme kode ved hjælp af SAS-makroer.

Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;

I dette tilfælde behøver brugeren ikke at angive værdien for den aktuelle dato. Koden vil automatisk vælge en aktuel dato fra et system.

Glem ikke at læse – SAS-funktioner

Fordele ved at bruge SAS-makroer

SAS-makroer giver os mulighed for:-

  • Mærke vores arbejde lettere ved at genbruge lignende kode flere gange efter at have defineret den én gang.
  • Gøre ændringer i en variabel et enkelt sted og afspejle dem på flere steder.
  • Den data i dit program drevet, dvs. at lade SAS beslutte, hvad der skal gøres baseret på de faktiske dataværdier

Siden af alt er det med til at reducere den indsats, der kræves for at læse og skrive SAS-kode.

Komponenter i SAS-makrokode

SAS-makrokode har to komponenter: Makroer og Makrovariabler. I et SAS-program har de refereret forskelligt som:-

  • &Navn refererer til makrovariabel
  • %Navn refererer til makro

SAS-makrovariabler

En makrovariabel er ligesom en standardvariabel, bortset fra at dens værdi ikke er et datasæt og kun har en værdi af et enkelt tegn. Værdien af en makrovariabel kan være et variabelnavn, et tal eller en hvilken som helst tekst, som du ønsker at erstatte i dit program.
Den rækkevidde af en makrovariabel kan være lokal eller global, afhængigt af hvordan vi har defineret den. Hvis den er defineret inde i et makroprogram, er rækkevidden lokal (kun tilgængelig for den pågældende makrokode). Hvis vi derimod har defineret den udenfor (i hoveddelen), kan vi bruge den overalt i SAS-programmet.
Vi bruger %LET-anvisningen til at oprette og tildele en værdi til makrovariabler.
% LET <Makrovariabelnavn>=Værdi;

Værdi af makrovariabel i %Let-anvisningen kan være en hvilken som helst streng, og den har følgende egenskaber:-

  • Den kan være af en hvilken som helst længde mellem 0 og 65,534 tegn
  • Numeriske værdier gemmes også som en tegnstreng
  • Matematiske udtryk evalueres ikke
  • Anførselstegn kan også gemmes som en del af en værdi
  • Førende og afsluttende blanktegn fjernes før tildeling

SAS Makrovariabler refereres ved at bruge et ampersand (&) efterfulgt af et makrovariabelnavn.

Glem ikke at kontrollere – SAS-strengfunktioner eller tegnfunktioner

&<Makrovariabelnavn>
Eksempel:-

Navn på makrovariabel

Vi kan også deklarere flere makrovariabler og bruge dem forskellige steder i SAS-koden. Makrovariablen opløses ikke, når de tilgår inden for enkelte anførselstegn. Derfor skal vi bruge dobbelte anførselstegn til at henvise til dem.

;

makro-variabel-1 <…makro-variabel-n>
er navnet på en eller flere SAS-makro-variabler.

Anvisningen %GLOBAL opretter en eller flere globale makro-variabler og tildeler nulværdier til variablerne. Globale makrovariabler er variabler, der er tilgængelige under hele udførelsen af SAS-sessionen eller -jobbet.
En makrovariabel, der oprettes med en %GLOBAL-anvisning, har en nulværdi, indtil du tildeler den en anden værdi. Hvis en global makrovariabel allerede findes, og du angiver den pågældende variabel i en %GLOBAL-angivelse, forbliver den eksisterende værdi uændret.

Må jeg lære – Hvad er SAS-syntaks, og hvordan vi kan bruge dem

ii. SAS Local Macro Variables

Syntaksen for en Local Macro-variabel i SAS-programmering:

%LOCAL makro-variabel-1 <…makro-variabel-n>;

makro-variabel-1 <…makro-variabel-n>
er navnet på en eller flere makro-variabler
Sætningen %LOCAL opretter en eller flere lokale makro-variabler. En makrovariabel, der er oprettet med %LOCAL, har en nulværdi, indtil du tildeler den en anden værdi. Lokale makrovariabler er variabler, der kun er tilgængelige under udførelsen af den makro, hvori de er defineret.

Brug %LOCAL-anvisningen for at sikre, at makrovariabler, der er oprettet tidligere i et program, ikke utilsigtet ændres af værdier, der er tildelt variabler med samme navn i den aktuelle makro. Hvis en lokal makrovariabel allerede findes, og du angiver den pågældende variabel i en %LOCAL-anvisning, forbliver den eksisterende værdi uændret.

Forstå begrebet – SAS-datasæt – Specielt & Indbygget datasæt i SAS

iii. Sammenligning – Globale vs. lokale variabler

  • Både %LOCAL-erklæringen og %GLOBAL-erklæringen opretter makrovariabler med et bestemt anvendelsesområde. Men %LOCAL-anvisningen opretter lokale makrovariabler, der kun eksisterer under udførelsen af den makro, der indeholder variablen, mens %GLOBAL-anvisningen opretter globale makrovariabler, der eksisterer i hele sessionen eller jobbet.
  • Hvis du definerer en lokal makrovariabel og en global makrovariabel med samme navn, bruger makrofaciliteten værdien af den lokale variabel under udførelsen af den makro, der indeholder den lokale variabel. Når makroen, der indeholder den lokale variabel, ikke udføres, bruger makrofaciliteten værdien af den globale variabel.

Funktioner i SAS-makroer

Disse SAS-makrofunktioner har samme syntaks, sammenlignet med deres modstykkefunktioner i datatrin, og de returnerer også resultater på samme måde.

i.%UPCASE() Funktion

Vi bruger denne funktion til at konvertere bogstavernes kasus til store bogstaver:

Syntaks:- %UPCASE (Argument)

Eksempel:-

%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;

Den udskriver titlen som “THIS IS DETAIL OF COUNTRY”.

Udforsk de bedste anvendelser af SAS-programmering

ii. %SUBSTR() Funktion

Denne funktion returnerer det givne antal tegn fra den angivne position.

Syntaks:- %SUBSTR (argument, position )
Hvis et antal tegn ikke er angivet, returnerer en %SUBSTR-funktion tegn fra den givne position til slutningen af strengen.

Eksempel:-

%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Dette var alt på SAS-makrovejledningen. Håber du kan lide vores forklaringer.

Summary

Heraf, i denne SAS Macros tutorial. Jeg håber, at du har lært nogle nye måder at manipulere data i SAS på. Du vil nu være i stand til at spare en masse tid ved at indarbejde SAS Macro i dit program. Hold dig opdateret for at lære flere af disse interessante ting i SAS.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.