Vandaag bespreken we SAS Macro’s voor beginners en hoe SAS macro maakt ons leven gemakkelijker door het verminderen van de redundantie of repetitiviteit van een code. SAS Macro biedt een ongelooflijke manier om een proces eenvoudig en automatisch te maken. Hier zullen we verschillende SAS Macro Variabelen zien, functies van Macro in de SAS programmeertaal. Bovendien leren we Onderdelen van SAS Macro Code en enkele voordelen van SAS Macro
Laten we eens kijken hoe SAS Macro werkt.
Wordt niet Verouderd & Krijg een Roze Slip
Volg DataFlair op Google Nieuws & Blijf het spel voor
1. Wat is een SAS-macro?
Macro’s helpen in feite om code op verschillende plaatsen meerdere malen te hergebruiken zonder dat u de hele code steeds opnieuw hoeft te typen. Dit bespaart niet alleen tijd, maar resulteert ook in foutloze code.
Laten we dit met een voorbeeld begrijpen:
proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;
De bovenstaande SAS code is geschreven om beleidsniveau details voor 09-Sep-14 te extraheren en laten we zeggen dat de gebruiker deze code dagelijks moet uitvoeren na het veranderen van de datum (op beide plaatsen) naar de huidige datum.
Nou, laten we dezelfde code bekijken met behulp van SAS macro’s.
Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;
In dit geval hoeft de gebruiker geen waarde op te geven voor de huidige datum. De code zal automatisch een huidige datum van een systeem kiezen.
Niet vergeten te lezen – SAS Functies
Voordelen van het gebruik van SAS Macro
SAS macro stelt ons in staat om:-
- Het werk gemakkelijker te maken door gelijksoortige code meerdere malen te hergebruiken nadat het een keer is gedefinieerd.
- Veranderingen in een variabele op een enkele plaats aan te brengen en deze op meerdere plaatsen weer te geven.
- De gegevens van uw programma gestuurd, d.w.z. SAS laten beslissen wat te doen op basis van de werkelijke gegevenswaarden
Voor alles helpt het de inspanningen te verminderen die nodig zijn om SAS Code te lezen en te schrijven.
Componenten van SAS Macro Code
SAS Macro code heeft twee componenten: Macro’s en Macro variabelen. In een SAS-programma worden ze verschillend aangeduid als:-
- &Naam verwijst naar Macro Variabele
- %Naam verwijst naar Macro
SAS Macro Variabelen
Een macro variabele is net als een standaard variabele, behalve dat de waarde ervan geen dataset is en slechts een waarde heeft van één karakter. De waarde van een macro variabele kan een variabele naam zijn, een cijfer, of elke tekst die u wilt vervangen in uw programma.
De reikwijdte van een Macro variabele kan lokaal of globaal zijn, afhankelijk van hoe we het gedefinieerd hebben. Als hij is gedefinieerd binnen een macro-programma, is het bereik lokaal (alleen beschikbaar voor die macro-code). Als we ze echter buiten het programma hebben gedefinieerd (in de hoofdtekst), dan kunnen we ze overal in het SAS-programma gebruiken.
We gebruiken %LET om macrovariabelen te maken en er een waarde aan toe te kennen.
% LET <Macro Variabele Naam>=Value;
Waarde van macro variabele in %Let verklaring kan elke tekenreeks zijn en het heeft de volgende kenmerken:-
- Het kan van elke lengte tussen 0 en 65 zijn,534 tekens
- Numerieke waarden worden ook opgeslagen als een tekenreeks
- Wiskundige uitdrukkingen worden niet geëvalueerd
- Het aanhalingsteken kan ook worden opgeslagen als onderdeel van een waarde
- Voorloop- en naloopspaties worden verwijderd voordat ze worden toegewezen
SAS Macrovariabelen worden vermeld met een ampersand (&) gevolgd door de naam van de macrovariabele.
Let op – SAS String Functions of Character Functions
&<Macro variable Name>
Voorbeeld:-
Name van macro variabele
We kunnen ook meerdere macro variabelen declareren en deze op verschillende plaatsen in de SAS code gebruiken. De macro variabele lost niet op wanneer ze binnen enkele aanhalingstekens staan. Daarom moeten we dubbele aanhalingstekens gebruiken om ernaar te verwijzen.
;
macro-variabele-1 <…macro-variabele-n>
is de naam van een of meer SAS-macrovariabelen.
De %GLOBAL-instructie maakt een of meer globale macrovariabelen en wijst nulwaarden aan de variabelen toe. Globale macrovariabelen zijn variabelen die beschikbaar zijn tijdens de gehele uitvoering van de SAS-sessie of -opdracht.
Een macrovariabele die is gemaakt met een %GLOBAL-instructie heeft een nulwaarde totdat u er een andere waarde aan toewijst. Als een globale macro variabele al bestaat en u specificeert die variabele in een %GLOBAL verklaring, blijft de bestaande waarde ongewijzigd.
Moeten leren – Wat is SAS Syntax en hoe kunnen we ze gebruiken
ii. SAS Lokale Macro Variabelen
De syntaxis van een Lokale Macro variabele in SAS Programmering:
%LOCAL macro-variabele-1 <…macro-variabele-n>;
macro-variabele-1 <…macro-variabele-n>
is de naam van een of meer macrovariabelen
De %LOCAL-instructie creëert een of meer lokale macrovariabelen. Een macrovariabele die is gemaakt met %LOCAL heeft een null-waarde totdat u er een andere waarde aan toekent. Lokale macrovariabelen zijn variabelen die alleen beschikbaar zijn tijdens de uitvoering van de macro waarin ze zijn gedefinieerd.
Gebruik de opdracht %LOCAL om ervoor te zorgen dat macrovariabelen die eerder in een programma zijn gemaakt, niet onbedoeld worden gewijzigd door waarden die zijn toegewezen aan variabelen met dezelfde naam in de huidige macro. Als een lokale macrovariabele al bestaat en u specificeert die variabele in een %LOCAL-instructie, blijft de bestaande waarde ongewijzigd.
Begrijp het concept – SAS Data Set – Special & Built-in Data Set in SAS
iii. Vergelijking – Globale vs Lokale Variabelen
- Zowel de %LOCAL-instructie als de %GLOBAL-instructie creëren macrovariabelen met een specifiek bereik. De opdracht %LOCAL maakt echter lokale macrovariabelen die alleen bestaan tijdens de uitvoering van de macro die de variabele bevat, en de opdracht %GLOBAL maakt globale macrovariabelen die bestaan voor de duur van de sessie of de taak.
- Als u een lokale macrovariabele en een globale macrovariabele met dezelfde naam definieert, gebruikt de macrofaciliteit de waarde van de lokale variabele tijdens de uitvoering van de macro die die lokale variabele bevat. Wanneer de macro die de lokale variabele bevat niet wordt uitgevoerd, gebruikt de macrofaciliteit de waarde van de globale variabele.
Functies van SAS Macro’s
Deze SAS Macro-functies hebben een vergelijkbare syntaxis, vergeleken met hun tegenhangerfuncties in gegevensstappen en zij retourneren ook resultaten op een vergelijkbare manier.
i.%UPCASE() Functie
We gebruiken deze functie om de hoofdletters van letters om te zetten in hoofdletters:
Syntax:- %UPCASE (Argument)
Voorbeeld:-
%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;
Het zal de titel afdrukken als “DIT IS DETAIL VAN LAND”.
Ontdek de toptoepassingen van SAS-programmering
ii. %SUBSTR() Functie
Deze functie retourneert het opgegeven aantal tekens vanaf de opgegeven positie.
Syntax:- %SUBSTR (argument, positie )
Als er geen aantal tekens wordt opgegeven, retourneert de %SUBSTR functie tekens vanaf de opgegeven positie tot het einde van de tekenreeks.
Voorbeeld:-
%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Samenvatting
Hiermee, in deze SAS Macro Tutorial. Ik hoop dat je een aantal nieuwe manieren hebt geleerd om gegevens in SAS te manipuleren. U zult nu in staat zijn om veel tijd te besparen door SAS Macro’s in uw programma op te nemen. Blijf op de hoogte om meer van dergelijke interessante dingen in SAS te leren.