Ich versuche, mehr über Proc Expand und SAS im Allgemeinen zu lernen. Ich bin nicht in der Lage gewesen, viel Licht in die Frage zu bringen, wie mehrere Operationen bei der Transformation zusammenarbeiten. Wenn ich den untenstehenden Code ausführe, scheint SAS einfach eine sich rückwärts bewegende Summe für zwei Zeilen zu berechnen.Wie funktionieren mehrere Operationen in der Umwandlung?
proc expand data=averages out=transformed;
id date;
convert x=y/transformout=(reverse movsum 2 movsum 1 reverse);
by type notsorted;
run;
Hier ist ein Beispiel der Ergebnisse:
y x
13372 1225
20564 12147
16140 8417
14446 7723
13097 6723
15976 6374
11497 9602
12704 1895
18043 10809
Wenn ich den Code ein wenig zu ändern, kann ich keine Muster mit finden, wie die Zahlen in SAS generiert werden. Hier ist der modifizierte Code.
proc expand data=averages out=transformed;
id date;
convert x=y/transformout=(reverse movsum 5 movsum 3 reverse);
by type notsorted;
run;
Hier sind die Ergebnisse dieser Code:
y x
116458 1225
112540 12147
106559 8417
103634 7723
107010 6723
103592 6374
103655 9602
100326 1895
94840 10809
Wie SAS mehrere Operationen in dieser Situation umgehen? Bis jetzt konnte ich bei Google nichts finden oder verschiedene Szenarien mit dem Code ausprobieren.
Wo ist die Variable 'TYPE' in der Anweisung' BY'? Oder sind alle Werte, die Sie für eine Ebene von TYPE gebucht haben? – Tom
@Tom Tut mir leid, ich hätte dieses Stück Code klären oder entfernen sollen. Die geposteten Werte sind alle vom selben TYPE. – Jarom