sas
Tworzenie zmiennych makr
Szukaj…
Wprowadzenie
Używanie zmiennych makr we wszystkich programach SAS to podstawowa funkcjonalność, którą każdy programista SAS musi znać. Korzystanie ze zmiennych makro może pomóc w utrzymaniu prostego i ogólnego kodu. Kod ogólny to kod wielokrotnego użytku.
Używanie% LET
Opisałbym% LET jako najprostszy sposób na utworzenie zmiennej makro w SAS.
%LET variableName = variableValue;
Teraz, gdziekolwiek użyjesz &variableName
, rozwiąże to variableValue
.
UWAGA: Może warto rozważyć, że
variableValue
wszystko na własnej potęgi przyniesie Ci błędy składni, depening na jaką wartość jest i jak jest on wykorzystywany. Na przykład, jeśli jest to data i używasz jej w GDZIE instrukcji PROC SQL, będzie ona musiała zostać napisana jako"&variableName"d
aby działać poprawnie.
Korzystanie z PROC SQL
Używanie PROC SQL to dobry sposób na szybkie uzyskanie wyników z tabeli i wrzucenie ich do zmiennych. Zwykle stwierdzam, że gdy chcę uzyskać liczbę rekordów, które właśnie załadowałem do tabeli, mogę przekształcić tę liczbę w zmienną za pomocą szybkiego wywołania PROC SQL.
PROC SQL;
SELECT
COUNT(*) INTO:aVariable
FROM
MyTable
;QUIT;
W powyższym przykładzie aVariable
będzie reprezentować, ile rekordów istnieje w MyTable
.
Możesz także użyć PROC SQL do tworzenia wielu zmiennych makr.
PROC SQL;
SELECT
a,
b,
c INTO:aVariable, :bVariable, :cVariable
FROM
MyTable
;QUIT;
W powyższym przykładzie zmienne utworzone w instrukcji INTO będą pasować do kolumn pobranych w kolejności, w jakiej są zwracane z instrukcji SELECT. Jednak tylko pierwszy wiersz wyników zostanie użyty do wypełnienia tych 3 zmiennych.
Jeśli chcesz przechowywać więcej niż jeden wiersz i korzystasz z wersji 6.11 lub nowszej, skorzystaj z następującego przykładu:
PROC SQL;
SELECT DISTINCT
a,
b,
c INTO :aVariable1 - :aVariable5,
:bVariable1 - :bVariable5,
:cVariable1 - :cVariable5
FROM
MyTable
;QUIT;
Słowa kluczowe
THROUGH
iTHRU
mogą być używane zamiast myślnika-
Korzystanie z Call Symput () w kroku DATA
DATA _null_;
CALL SYMPUT('testVariable','testValueText');
;RUN;
W powyższym przykładzie %PUT &testVariable;
rozwiąże testvalueText
.
Konieczne może być sformatowanie zmiennej w wywołaniu SYMPUT ().
DATA _null_;
CALL SYMPUT('testDate',COMPRESS(PUT(today(),date9.)));
;RUN;
W powyższym przykładzie %PUT &testDate;
rozwiąże do 10 10MAR2017