SAS Makro für Anfänger – Makrovariablen & Funktionen

Heute besprechen wir SAS Makros für Anfänger und wie SAS Makro unser Leben einfacher macht, indem es die Redundanz oder Wiederholbarkeit eines Codes reduziert. SAS Macro bietet eine unglaubliche Möglichkeit, einen Prozess einfach und automatisch zu gestalten. Hier werden wir verschiedene SAS-Makro-Variablen und Funktionen von Makros in der SAS-Programmiersprache kennenlernen. Außerdem lernen wir die Komponenten von SAS Macro Code und einige Vorteile von SAS Macro kennen

Lassen Sie uns sehen, wie SAS Macro funktioniert.

Veralten Sie nicht &bekommen Sie einen rosa Slip
Folgen Sie DataFlair auf Google News & Bleiben Sie dem Spiel voraus

1. Was ist ein SAS-Makro?

Makros helfen grundsätzlich dabei, Code an verschiedenen Stellen mehrfach zu verwenden, ohne den gesamten Code immer wieder neu eingeben zu müssen. Dies spart nicht nur Zeit, sondern führt auch zu fehlerfreiem Code.

Lassen Sie uns dies anhand eines Beispiels verstehen:

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

Der obige SAS-Code wurde geschrieben, um Details auf Policy-Ebene für den 09-Sep-14 zu extrahieren, und nehmen wir an, dass der Benutzer diesen Code täglich ausführen muss, nachdem er das Datum (an beiden Stellen) in das aktuelle Datum geändert hat.

Betrachten wir nun denselben Code unter Verwendung von SAS-Makros.

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

In diesem Fall braucht der Benutzer keinen Wert für das aktuelle Datum anzugeben. Der Code wählt automatisch ein aktuelles Datum aus dem System aus.

Vergessen Sie nicht, SAS-Funktionen zu lesen

Vorteile der Verwendung von SAS-Makros

SAS-Makros ermöglichen es uns:-

  • unsere Arbeit zu erleichtern, indem wir ähnlichen Code mehrfach wiederverwenden, nachdem wir ihn einmal definiert haben.
  • Änderungen an einer Variablen an einer einzigen Stelle vornehmen und sie an mehreren Stellen wiedergeben.
  • Die Daten Ihres Programms steuern, d.h. SAS entscheiden lassen, was zu tun ist, basierend auf den tatsächlichen Datenwerten

Vor allem hilft es, den Aufwand für das Lesen und Schreiben von SAS Code zu reduzieren.

Komponenten von SAS Makro Code

SAS Makro Code hat zwei Komponenten: Makros und Makro-Variablen. In einem SAS-Programm werden sie unterschiedlich bezeichnet:-

  • &Name bezieht sich auf Makrovariable
  • %Name bezieht sich auf Makro

SAS-Makrovariablen

Eine Makrovariable ist genau wie eine Standardvariable, nur dass ihr Wert kein Datensatz ist und nur einen einzelnen Zeichenwert hat. Der Wert einer Makrovariable kann ein Variablenname, eine Zahl oder ein beliebiger Text sein, den Sie in Ihrem Programm ersetzen wollen.
Der Geltungsbereich einer Makrovariable kann lokal oder global sein, je nachdem, wie wir sie definiert haben. Wenn sie innerhalb eines Makroprogramms definiert ist, ist der Geltungsbereich lokal (nur für diesen Makrocode verfügbar). Wenn wir sie jedoch außerhalb (im Hauptteil) definiert haben, können wir sie überall im SAS-Programm verwenden.
Wir verwenden die %LET-Anweisung, um Makrovariablen zu erstellen und ihnen einen Wert zuzuweisen.
% LET <Makrovariablenname>=Wert;

Der Wert der Makrovariablen in der %Let-Anweisung kann ein beliebiger String sein und hat folgende Eigenschaften:

  • Sie kann eine beliebige Länge zwischen 0 und 65 haben,534 Zeichen
  • Numerische Werte werden auch als Zeichenkette gespeichert
  • Mathematische Ausdrücke werden nicht ausgewertet
  • Anführungszeichen können auch als Teil eines Wertes gespeichert werden
  • Führende und abschließende Leerzeichen werden vor der Zuweisung entfernt

SAS Makrovariablen werden durch ein kaufmännisches Und (&) gefolgt von einem Makrovariablennamen referenziert.

Vergessen Sie nicht zu prüfen, ob es sich um SAS String-Funktionen oder Zeichenfunktionen handelt

&<Makrovariablenname>
Beispiel:-

Name der Makrovariable

Wir können auch mehrere Makrovariablen deklarieren und sie an verschiedenen Stellen im SAS-Code verwenden. Die Makrovariable wird nicht aufgelöst, wenn sie in einfachen Anführungszeichen steht. Daher sollten wir doppelte Anführungszeichen verwenden, um sie zu referenzieren.

;

macro-variable-1 <…macro-variable-n>
ist der Name einer oder mehrerer SAS-Makrovariablen.

Die %GLOBAL-Anweisung erzeugt eine oder mehrere globale Makrovariablen und weist den Variablen Nullwerte zu. Globale Makrovariablen sind Variablen, die während der gesamten Ausführung der SAS-Sitzung oder des Jobs verfügbar sind.
Eine mit der %GLOBAL-Anweisung erstellte Makrovariable hat einen Nullwert, bis Sie ihr einen anderen Wert zuweisen. Wenn eine globale Makrovariable bereits existiert und Sie diese Variable in einer %GLOBAL-Anweisung spezifizieren, bleibt der existierende Wert unverändert.

Must learn – What is SAS Syntax and how we can use them

ii. SAS Lokale Makrovariablen

Die Syntax einer lokalen Makrovariable in der SAS Programmierung:

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

macro-variable-1 <…macro-variable-n>
ist der Name einer oder mehrerer Makrovariablen
Die %LOCAL-Anweisung erzeugt eine oder mehrere lokale Makrovariablen. Eine mit %LOCAL erstellte Makrovariable hat einen Nullwert, bis Sie ihr einen anderen Wert zuweisen. Lokale Makrovariablen sind Variablen, die nur während der Ausführung des Makros, in dem sie definiert sind, zur Verfügung stehen.

Verwenden Sie die %LOCAL-Anweisung, um sicherzustellen, dass Makrovariablen, die zuvor in einem Programm erstellt wurden, nicht versehentlich durch Werte geändert werden, die gleichnamigen Variablen im aktuellen Makro zugewiesen wurden. Wenn eine lokale Makrovariable bereits existiert und Sie diese Variable in einer %LOCAL-Anweisung angeben, bleibt der bestehende Wert unverändert.

Verstehen Sie das Konzept – SAS-Datensatz – Spezieller & Eingebauter Datensatz in SAS

iii. Vergleich – Globale vs. Lokale Variablen

  • Sowohl die %LOCAL-Anweisung als auch die %GLOBAL-Anweisung erzeugen Makrovariablen mit einem bestimmten Umfang. Die Anweisung %LOCAL erzeugt jedoch lokale Makrovariablen, die nur während der Ausführung des Makros, das die Variable enthält, existieren, während die Anweisung %GLOBAL globale Makrovariablen erzeugt, die für die Dauer der Sitzung oder des Auftrags existieren.
  • Wenn Sie eine lokale Makrovariable und eine globale Makrovariable mit demselben Namen definieren, verwendet die Makroeinrichtung den Wert der lokalen Variable während der Ausführung des Makros, das diese lokale Variable enthält. Wenn das Makro, das die lokale Variable enthält, nicht ausgeführt wird, verwendet die Makroeinrichtung den Wert der globalen Variable.

Funktionen von SAS-Makros

Diese SAS-Makrofunktionen haben eine ähnliche Syntax wie ihre Gegenstückfunktionen in Datenschritten und geben auch Ergebnisse auf ähnliche Weise zurück.

i.%UPCASE() Funktion

Wir verwenden diese Funktion, um die Groß-/Kleinschreibung von Buchstaben in Großbuchstaben umzuwandeln:

Syntax:- %UPCASE (Argument)

Beispiel:-

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

Es wird der Titel als „DIES IST DETAIL DES LANDES“ ausgegeben.

Entdecke die wichtigsten Anwendungen der SAS-Programmierung

ii. %SUBSTR() Funktion

Diese Funktion gibt die angegebene Anzahl von Zeichen ab der angegebenen Position zurück.

Syntax:- %SUBSTR (Argument, Position )
Wenn eine Anzahl von Zeichen nicht angegeben wird, gibt die %SUBSTR Funktion Zeichen ab der angegebenen Position bis zum Ende der Zeichenkette zurück.

Beispiel:-

%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Das war alles zum SAS Makro Tutorial. Ich hoffe, unsere Erklärungen haben Ihnen gefallen.

Zusammenfassung

So, in diesem SAS Makro Tutorial. Ich hoffe, Sie haben einige neue Möglichkeiten der Datenmanipulation in SAS kennengelernt. Sie werden nun in der Lage sein, eine Menge Zeit zu sparen, indem Sie SAS-Makros in Ihr Programm einbauen. Bleiben Sie dran, um weitere interessante Dinge in SAS zu lernen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.