/** * Syntax-Beispiele (Datentransformationen) * * @author: Timo Gnambs * @version: 2004-11-17 */ /* Lädt eine Datendatei. */ GET FILE='fiktiver-fragebogen.sav'. /* Kommentare */ COMMENT Dies ist ein Kommentar. * Dies ist ein weiterer Kommentar. /* Schon wieder ein Kommentar */ /* Aufbau der Syntax: Kommando (frequencies), Subkommandos (statistics), Variablen (sex) */ FREQUENCIES VARIABLES=sex /STATISTICS=MODE. frequencies variables = sex /statistics = mode. /* Rekodieren */ RECODE lot1 TO lot10 (1 = 1) (2 = 1) (3 = 2) (4 = 3) (5 = 3). RECODE profession ('Anwalt' = 1) ('Student' = 2) ('Tischler' = 3) (ELSE = SYSMIS) INTO profgr. RECODE age (MISSING = SYSMIS) (LOWEST thru 60 = 1) (ELSE = 2) INTO agegr. EXECUTE. /* Variable beschriften */ VARIABLE LABELS profgr 'Berufsgruppen' /agegr 'Altersgruppen'. VALUE LABELS profgr 1 'Anwalt' 2'Student' 3 'Tischler' /agegr 1 'jung' 2 'alt'. EXECUTE. /* Zählen */ COUNT motivcnt = motiv1, motiv2, motiv3, motiv4 (1). COUNT poor = lot01 TO lot10 (LOWEST THRU 3). COUNT miscnt = lot01 TO lot10 (MISSING). EXECUTE. /* Berechnen */ COMPUTE idweight = height - 100. VARIABLE LABELS idweight 'Idealgewicht (height - 100)' . EXECUTE. /* Berechnen mit Funktionen */ COMPUTE wehe = RND(weight/height). COMPUTE score = SUM.6(lot1 TO lot10). COMPUTE mini = MIN(meth1, meth2, meth3, meth4). COMPUTE noprof = MISSING(profession). VARIABLE LABELS wehe 'gerundeter Wert des Verhältnisses von Gewicht zu Höhe' /score 'Mittelwert der Variable lot1 bis lot10' /noprof 'Keine Berufsangabe'. VALUE LABELS noprof 0 'Beruf wurde angegeben' 1 'Fehlende Berufsangabe'. EXECUTE. /* Bedingungen */ IF (age <= 50) agegr = 1. IF (age > 50) agegr = 2. EXE. DO IF (age < 14). COMPUTE strafmuendig = 1. ELSE IF (age >= 14 AND age <18). COMPUTE strafmuendig = 2. ELSE. COMPUTE strafmuendig = 3. END IF. VARIABLE LABELS strafmuendig 'Strafmuendigkeit'. VALUE LABELS strafmuendig 1 'Strafumuendig' 2 'Eingeschränkt strafmuendig' 3 'Strafmuendig'. EXE. /* Schleifen */ COMPUTE com01 = (lot01 * 10) / 2. COMPUTE com02 = (lot02 * 10) / 2. COMPUTE com03 = (lot03 * 10) / 2. COMPUTE com04 = (lot04 * 10) / 2. COMPUTE com05 = (lot05 * 10) / 2. COMPUTE com06 = (lot06 * 10) / 2. COMPUTE com07 = (lot07 * 10) / 2. COMPUTE com08 = (lot08 * 10) / 2. COMPUTE com09 = (lot09 * 10) / 2. COMPUTE com10 = (lot10 * 10) / 2. EXE. DO REPEAT a = lot01 TO lot10 / b = com01 TO com10. COMPUTE b = (a * 10) / 2. END REPEAT. EXE. /* Variable im Ausdruck ausgeben */ LIST uid sex. LIST uid profession /CASES 1 TO 10. EXE. PRINT /'ID: ' uid (f2.0) '; Alter: ' age (f2.0) '; Geschlecht: ' sex (f1.0). EXE. DO IF($casenum = 1). PRINT EJECT /'ID Alter Geschlecht'. PRINT SPACE. END IF. PRINT /uid 1-2 age 5-7 sex 15-16. EXE. /* Datei speichern */ SAVE OUTFILE='demo.sav'. EXE.