SAS-makro för nybörjare – Makrovariabler och funktioner

I dag diskuterar vi SAS-makros för nybörjare och hur SAS-makros underlättar vårt liv genom att reducera redundans eller upprepning av en kod. SAS Macro ger ett otroligt sätt att göra en process enkel och automatisk. Här kommer vi att se olika SAS makrovariabler, funktioner för makro i SAS programmeringsspråk. Dessutom lär vi oss komponenter i SAS-makrokod och några fördelar med SAS-makro

Låt oss se hur SAS-makro fungerar.

Bli inte föråldrad & få ett rosa brev
Följ DataFlair på Google News & Håll dig i framkant

1. Vad är SAS-makro?

Makroer hjälper i princip till att återanvända kod på olika ställen flera gånger utan att behöva skriva in hela koden om och om igen. Detta sparar inte bara tid utan resulterar också i felfri kod.

Låt oss förstå detta med ett exempel:

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

Ovanstående SAS-kod är skriven för att extrahera detaljer på policynivå för 09-Sep-14 och låt oss säga att användaren behöver köra denna kod dagligen efter att ha ändrat datumet (på båda ställena) till aktuellt datum.

Nu ska vi titta på samma kod med hjälp av SAS-makron.

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

I det här fallet behöver användaren inte ange något värde för det aktuella datumet. Koden väljer automatiskt ett aktuellt datum från ett system.

Glöm inte att läsa – SAS-funktioner

Fördelar med att använda SAS-makron

SAS-makron gör det möjligt för oss att:-

  • Förenkla vårt arbete genom att återanvända liknande kod flera gånger efter att ha definierat den en gång.
  • Göra ändringar i en variabel på ett enda ställe och återspegla dem på flera platser.
  • Data i ditt program drivs, dvs. SAS får bestämma vad som ska göras baserat på faktiska datavärden

Av allt hjälper det till att minska de ansträngningar som krävs för att läsa och skriva SAS-kod.

Komponenter i SAS-makrokod

SAS-makrokod har två komponenter: Makroer och makrovariabler. I ett SAS-program har de hänvisats på olika sätt som:-

  • &Namn hänvisar till makrovariabel
  • %Namn hänvisar till makro

SAS-makrovariabler

En makrovariabel är precis som en standardvariabel, med undantag för att dess värde inte är en datamängd och endast har ett enstaka teckenvärde. Värdet för en makrovariabel kan vara ett variabelnamn, en siffra eller vilken text som helst som du vill ersätta i ditt program.
En makrovariabels räckvidd kan vara lokal eller global, beroende på hur vi har definierat den. Om den definieras inuti ett makroprogram är räckvidden lokal (endast tillgänglig för den makrokoden). Om vi däremot har definierat den utanför (i huvuddelen) kan vi använda den var som helst i SAS-programmet.
Vi använder %LET-anvisningen för att skapa och tilldela ett värde till makrovariabler.
% LET <Makrovariabelnamn>=Värde;

Värde för makrovariabel i %Let-angivelsen kan vara vilken sträng som helst och den har följande egenskaper:-

  • Den kan vara av valfri längd mellan 0 och 65,534 tecken
  • Numeriska värden lagras också som en teckensträng
  • Matematiska uttryck utvärderas inte
  • Kvoteringstecken kan också lagras som en del av ett värde
  • Förande och efterföljande blanksteg tas bort före tilldelningen

SAS Makrovariabler refereras med hjälp av ett ampersand (&) följt av ett namn på en makrovariabel.

Glöm inte att kontrollera – SAS strängfunktioner eller teckenfunktioner

&<Makrovariabelnamn>
Exempel:-

Makrovariabelnamn

Vi kan också deklarera flera makrovariabler och använda dem på olika ställen i SAS-koden. Makrovariabeln löses inte upp när de access inom enkla citattecken. Därför bör vi använda dubbla citattecken för att referera till dem.

;

Makrovariabel-1 <…makrovariabel-n>
är namnet på en eller flera SAS-makrovariabler.

Satsningen %GLOBAL skapar en eller flera globala makrovariabler och tilldelar nollvärden till variablerna. Globala makrovariabler är variabler som är tillgängliga under hela utförandet av SAS-sessionen eller -jobbet.
En makrovariabel som skapats med ett %GLOBAL-meddelande har ett nollvärde tills du tilldelar den något annat värde. Om en global makrovariabel redan finns och du anger den variabeln i ett %GLOBAL-meddelande förblir det befintliga värdet oförändrat.

Måste lära sig – Vad är SAS-syntax och hur vi kan använda dem

ii. SAS lokala makrovariabler

Syntaxen för en lokal makrovariabel i SAS-programmering:

%LOCAL macro-variable-1 <…macro-variable-n>;

macro-variable-1 <…macro-variable-n>
är namnet på en eller flera makrovariabler
Satsen %LOCAL skapar en eller flera lokala makrovariabler. En makrovariabel som skapas med %LOCAL har ett nollvärde tills du tilldelar den något annat värde. Lokala makrovariabler är variabler som endast är tillgängliga under utförandet av det makro där de definieras.

Använd %LOCAL-angivelsen för att se till att makrovariabler som skapats tidigare i ett program inte oavsiktligt ändras av värden som tilldelats variabler med samma namn i det aktuella makrot. Om en lokal makrovariabel redan existerar och du anger variabeln i ett %LOCAL-uttalande förblir det befintliga värdet oförändrat.

Förstå begreppet – SAS Data Set – Special & Built-in Data Set in SAS

iii. Jämförelse – Globala vs lokala variabler

  • Både %LOCAL- och %GLOBAL-anvisningarna skapar makrovariabler med en specifik räckvidd. Men %LOCAL-angivelsen skapar lokala makrovariabler som endast existerar under exekveringen av det makro som innehåller variabeln, medan %GLOBAL-angivelsen skapar globala makrovariabler som existerar under hela sessionen eller jobbet.
  • Om du definierar en lokal makrovariabel och en global makrovariabel med samma namn använder makroanläggningen värdet på den lokala variabeln under exekveringen av det makro som innehåller den lokala variabeln. När makrot som innehåller den lokala variabeln inte exekveras använder makrofunktionen värdet på den globala variabeln.

Funktioner för SAS-makron

De här SAS-makrofunktionerna har liknande syntax, jämfört med deras motsvarigheter i datastegen, och de returnerar också resultat på ett liknande sätt.

i.%UPCASE() Funktion

Vi använder den här funktionen för att konvertera bokstävernas versaler till versaler:

Syntax:- %UPCASE (Argument)

Exempel:-

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

Den kommer att skriva ut titeln som ”THIS IS DETALJ OF COUNTRY”.

Utforska de viktigaste tillämpningarna av SAS-programmering

ii. %SUBSTR() Funktion

Denna funktion returnerar det givna antalet tecken från den angivna positionen.

Syntax:- %SUBSTR (argument, position )
Om ett antal tecken inte anges returnerar %SUBSTR-funktionen tecken från den givna positionen fram till strängens slut.

Exempel:-

%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Det här var allt om SAS-makrohandledning. Hoppas du gillar våra förklaringar.

Sammanfattning

Härav, i denna handledning om SAS-makron. Jag hoppas att du lärt dig några nya sätt att manipulera data i SAS. Du kommer nu att kunna spara mycket tid genom att införliva SAS Macro i ditt program. Håll dig uppdaterad för att lära dig fler sådana intressanta saker i SAS.

Lämna ett svar

Din e-postadress kommer inte publiceras.