Sie werden zwei primäre Tools verwenden: Die mod
-Funktion und eine Summenanweisung. Die Summenanweisung sieht wie eine falsche Syntax aus, ist aber ein Sonderfall von retain
.
_N_
ist eine spezielle Variable, die als Ihr Beobachtungszähler fungiert. Jedes Mal, wenn Ihr Schritt data
von oben nach unten (dh von data
zu run
) schleift, wird _N_
um eins erhöht.
Mithilfe von mod
unter _N_
können wir einen Zähler für alle zwei Beobachtungen um 1 erhöhen, wenn das Ergebnis 1 ist. Mit anderen Worten, wenn Sie einen Beobachtungszähler durch 2 teilen und einen Rest von 1 erhalten, addieren Sie 1 zu order
.
Zum Beispiel:
_N_ _N_/2 Remainder Operation Value
1 1/2 1 0+1 1
2 2/2 0 N/A 1
3 3/2 1 1+1 2
4 4/2 0 N/A 2
5 5/2 1 2+1 3
6 6/2 0 N/A 3
Letztlich sind wir eine Operation zu tun, wo wir einen gewissen Wert zu einem bestimmten Zustand erhöhen, tragen sie nach vorne und wiederholen.
Wie dieser Code aussieht:
data want;
set have;
if(mod(_N_, 2) = 1) then order+1;
run;
Oder seit mod (int, 2) liefert 0 oder 1 Sie einfach benutzen könnte 'order + mod (_N_, 2),' – Tom