SPSS Syntaxbeispiel: Schleifen

SPSS Logo

Aufgabe: Aus 10 Variablen Rohwert1 bis Rohwert10 sollen 10 neue Variablen berechnet werden, z. B. normierte Werte Normbereich1 bis Normbereich10.

Die Umformungsvorschrift laute:
Rohwerte von 0-10 erhalten Normbereich 1,
Werte von 11-15 Normbereich 2,
Werte von 16 bis 18 Normbereich 3.

Einfache Lösung: Viele SPSS-Befehle an einander reihen:
if Rohwert1 < 11 Normbereich1 = 1.
if Rohwert1 >10 and Rohwert1 < 16 Normbereich1=2.
if Rohwert1 >15 Normbereich1=3.
execute.



(OK, das ginge alternativ auch mit einem einzigen recode-Befehl.)
Diese Zeilen wiederholt man dann für Rohwert2, Rohwert3, … bis Rohwert10. Mit Copy & Paste mag das schnell gehen, die Syntax wird jedoch lang und unübersichtlich. Geht das nicht eleganter?

Na klar: per Schleife.

do repeat oldvar=Rohwert1 Rohwert2 Rohwert3 Rohwert4 Rohwert5 Rohwert6 Rohwert7 Rohwert8 Rohwert9 Rohwert10
 / newvar=Normbereich1 Normbereich2 Normbereich3 Normbereich3 Normbereich4 Normbereich5 Normbereich6 Normbereich7 Normbereich8 Normbereich9 Normbereich10.
if oldvar < 11 newvar = 1.
if oldvar >10 and oldvar < 16 newvar =2.
if oldvar >15 newvar =3.
end repeat.
execute.

Schreibt man statt end repeat noch end repeat print, so verrät die SPSS-Ausgabe, wie viele einzelne Befehle durch diese Schleife erzeugt und ausgeführt wurden. Es genügt also, die Liste der alten und neuen Variable nur ein Mal aufzuzählen, SPSS setzt in die Schleife dann bei jedem Durchlauf das nächste Variablenpaar ein.




Freue mich über Kommentare!