Ich habe über eine Reihe von SAS Code kommen, die wie das heute aussieht:Was bedeutet `% *;` in SAS?
%*let var1=apple;
was bedeutet das? (Ist es ein Kommentar? Oder ist es ein Makro? Warum das %
Zeichen?)
Ich habe über eine Reihe von SAS Code kommen, die wie das heute aussieht:Was bedeutet `% *;` in SAS?
%*let var1=apple;
was bedeutet das? (Ist es ein Kommentar? Oder ist es ein Makro? Warum das %
Zeichen?)
Macro comments, erstellt von einem %
wie in der Frage ein normalen Kommentar Sternchen vorangestellt, sind vom regelmäßigen Kommentaren auf subtile Weise anders.
Ein regulärer Kommentar, *something;
, wird in einem Makro vom Makro-Tokenizer und der Makro-Funktion verarbeitet. 99% der Zeit spielt das keine Rolle; In bestimmten Fällen ist dies jedoch ein Problem.
Zum Beispiel, wenn Sie Makro Syntax kommentieren wollen, müssen Sie den Makro-Kommentar verwenden, sonst dauert es noch Wirkung:
%macro macvar_Test;
%let macvar=ORIGINAL;
*%let macvar=COMMENT;
%*%let macvar=MACRO COMMENT;
%put &=macvar;
%mend macvar_Test;
%macvar_Test;
Beachten Sie, dass &macvar
COMMENT
enthält - auch wenn diese Zeile kommentiert zu sein scheint aus.
Makrokommentare werden immer noch vom Makro-Tokenizer verarbeitet. Daher können nicht übereinstimmende Angebote immer noch problematisch sein, es sei denn, Sie verwenden /* */
Stilblockkommentare.
Diese offizielle SAS Doktreferenz auf [Makro Kommentar Erklärung] (http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a000543665.htm) ist sehr nützlich. Das Beispiel zeigt sehr deutlich den Unterschied zwischen einem Standard-Kommentar und einem% -Befehl. Vielen Dank. – Atlas7
Dies ist ein Makro Kommentar.
wie also diese Zeile geschrieben, wird nie
ausführen Es ist nur eine andere Art zu kommentieren:
Von http://www.lexjansen.com/pharmasug/2002/proceed/TechTech/tt07.pdf
Neben dient als Multiplikationsoperator ist, wird das Sternchen gefunden verschiedene Orte, um Wechselwirkungen oder Kreuzklassifizierung anzuzeigen (wie die TABLES-Anweisung in PROC FREQ) und in die Anzahl der Zeit angibt s um eine Zeichenkette zu wiederholen (wie in PROC REPORT). Es ist verwendet, um Aussagen allein oder in Verbindung mit dem Schrägstrich (/ * ... * /) oder der Prozent Zeichen (%) zu kommentieren. Das Sternchen erzwingt auch, dass SAS einen Array-Index durch Zählen der Anzahl der Variablen im Array ermittelt. Zwei Sternchen zeigen den Potenzierungsoperator an.
Dies beantwortet die Frage nicht richtig. Dies ist nicht "nur ein weiterer Kommentar", es hat einen Zweck. – Joe
die Aestricks (*) scheint ein Tippfehler zu sein, das '%' zuvor wird benötigt, um Valriable zu deklarieren, die nicht Teil eines Datensatzes ist. –
Das * ist kein Tippfehler - und wie sich aus der Antwort unten ergibt, ist diese Codezeile nur ein Kommentar. – Atlas7