2016-07-07 7 views
2

New SAS Programmierer here..in .NET wir einen Wert auf mehrere Variablen in einer Zeile wie so zuordnen:initialisieren mehrere Variablen in einer Linie SAS

var1 = var2 = var3 = 0;

gibt es eine Syntax in SAS zu tun das Äquivalent?

+0

Sie müssen SAS-Variablen nicht initialisieren. Was möchten Sie tun, wenn eine Initialisierung erforderlich ist? Wenn sum, verwenden Sie stattdessen die Funktion SUM(), die fehlende Werte oder fehlende Initialisierung ignoriert. – Reeza

Antwort

1

Soweit ich weiß, unterstützt SAS keine Mehrfachzuweisung.

SAS wertet var1 = var2 = var3 = 0; als var1 = (var2 = var3 = 0); und gibt einen Wert von 1 für var1 wenn var2 = var3 = 0 und 0 sonst.

2

Nr

Aber es gibt auch andere Möglichkeiten, um die Art der Sache zu erreichen.

Am gebräuchlichsten wäre die Verwendung eines ARRAY- und eines DO-Loops.

array varlist var1 var2 var3 ; 
do i=1 to dim(varlist); 
    varlist(i)=0; 
end; 

Sie könnten die Anweisung ARRAY verwenden, um die Variablen zu initialisieren.

array varlist var1 var2 var3 (3*0); 

Dies gilt jedoch nur für den Anfangswert bei der ersten Iteration des Datenschritts.

Oder Sie könnten kreativ sein und eine Makrofunktion verwenden, um den Code zu generieren.

%sysfunc(tranwrd(var1|var2|var3|,|,%str(=0;))) 

Wenn Sie die Werte als fehlend festlegen möchten, können Sie die Funktion CALL MISSING() verwenden.

call missing(of var1 var2 var3);