2016-05-09 9 views
1

Ich habe Probleme eine Lösung für das folgende Problem zu finden:machen komplexe neue Variablen

Ich habe eine Altersvariable (z 18, 20, 56) und ein Datum, wenn die Umfrage aufgenommen wurde (2012). Was ich machen möchte, ist folgendes: Wenn der Befragte 10 Jahre alt ist, muss ich 10 Alterskategorien mit 0 und 1 machen, wenn der Befragte nicht existierte oder lebte: also neue Variable age2002 = 1, age2003 = 1, .. . age2012 = 1 aber age2000 = 0 und age1990 = 0. Wie kann ich das in spss-Syntax für jeden Befragten tun? Ich habe viele verschiedene Altersstufen, aber das Jahr der Umfrage ist immer dasselbe.

+0

Ich verstehe die Logik von dem, was Sie hier fragen, aber gleichzeitig nicht verstehen, unter welchen Umständen Daten in diesem Format überhaupt nützlich wären? –

+0

Variable Konstruktion, Kombination von Daten – Newguy

Antwort

1

dies für alle Altersgruppen von 1 bis 100 ist:

do repeat NewVr=age1912 to age2012/vl=1912 to 2012. 
compute NewVr=(2012-age<=vl). 
end repeat. 
execute. 

wenn Sie wollen nur all Alter zwischen 1 bis 10 und dann 2000, 1990, 1980 usw. ':

do repeat NewVr=age1970 age1980 age1990 age2000 age2002 to age2012 
      /vl=1970 1980 1990 2000 2002 to 2012. 
compute NewVr=(2012-age<=vl). 
end repeat. 
execute. 
+0

Danke. Wissen Sie auch, wie Sie diese Variable abhängig vom Erhebungsjahr einstellen können? Zum Beispiel, wenn 2012 eine Variable ist, die das Erhebungsjahr ist (mit vielen verschiedenen Jahren). Nach dem Erhebungsjahr sollte es für einen bestimmten Befragten keine 1, sondern eine Null ergeben, weil ich nicht weiß, dass er nach dem Erhebungsjahr noch lebt. Wenn beispielsweise 2012 das Erhebungsjahr für einen bestimmten Befragten ist, sollte age2013 null sein. – Newguy

+0

Wie David Marso vorgeschlagen hat, sollten Sie eine Erklärung hinzufügen, wofür Sie das brauchen - um es für andere Benutzer zu verallgemeinern und vielleicht einige Alternativen zu hören. –

+0

In der DO REPEAT ersetzen 2012 durch SurveyYear. Fügen Sie dann nach dem Befehl COMPUTE Folgendes hinzu: 'if vl> SurveyYear NewVr = 0.' –

0

Was ist das eigentliche Problem, das Sie versuchen zu lösen? Das Erstellen einer Menge (100) 0/1 Dummy-Variablen scheint keine sehr solide Datenverwaltung zu sein. Wenn Sie mit der vorgeschlagenen DO REPEAT gehen ... berechnen NewVr = (2012-Alter < = vl). .... Ich würde das als schreiben COMPUTE newvar = ((2012-Alter) LE v1). scheint nur klarer in meinem Gehirn zu parsen.