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?
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?
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.
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);
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