für meine Abschlussarbeit brauche ich eine Variable, welche darstellt ob die idealistischen Bildungsaspirationen (t514001 im Datensatz SC3_pTarget_D_11-0-1.dta) aus der ersten Welle tatsächlich erreicht wurden. Dafür muss ich die Variable des allgemeinen Schulabschluss (ts11209 im Datensatz SC3_spSchool_D_11-0-1.dta) so umkodieren, dass von einer Person nur noch der höchst erreichte Schulabschluss vorkommt und nicht alle bisherigen erreichten Schulabschlüsse bzw. alle Antworten in den jeweiligen Wellen davor.
Die Idee ist, dass die Variable allgemeiner Schulabschluss so kodieren möchte, dass für eine Person nur der letzte angegebene Schulabschluss gültig ist und der Rest gelöscht wird. Anschließend möchte ich dann den neuen Datensatz mit SC3_pTarget_D_11-0-1.dta mergen und die beiden Variablen zusammenführen.
Mein Problem und meine Frage an die Runde ist hierbei, wie kann ich die Variable, die nur den höchsten Schulabschluss einer Person beinhaltet und in welcher die Personen nicht mehrfach vorkommen.
für dein Vorhaben gibt es mehr oder weniger zwei Möglichkeiten:
(1) Du verwendest wie bereits von dir skizziert die einzelnen Angaben aus den SChulepisoden des spSchool Datensatzes und baust dir das alles selbst zusammen.
(2) Du wirfst mal einen Blick in den Education Datensatz ;-). Dort findest du nämlich die erreichten SChulabschlüsse einer Person schon in aufbereiteter Form.
Ich würde dir Variante (2) empfehlen, weil es einfach deutlich schneller geht:
Du könntest dir beispielsweise anhand der Variable „tx28101 letzter CASMIN’“ diejenigen Schulabschlüsse selektieren, die dich interessieren. Ich vermute, man müsste hier nur all diejenigen mit bereits erfolgter beruflicher Ausbildung entfernen und könnte damit dann leicht weiterarbeiten.
Um für eine Person jeweils den höchsten zu berechnen, müsste man nur das Maximum dieser Variable berechnen und anschließend nur jeweils eine Zeile pro Person behalten, um das Ergebnis dann an alle Zeilen an pTarget anspielen zu können.
Beispielweise so:
use <Speicherort>\SC3_Education_D_11-0-1.dta, clear
keep if inlist(tx28101,0,1,3,5)
bysort ID_t: egen maxedu = max(tx28101)
keep ID_t maxedu
duplicates drop
save <Speicherort>\Schulabschlüsse.dta, replace
use <Speicherort>\SC3_pTarget_D_11-0-1.dta, clear
merge m:1 ID_t using <Speicherort>\Schulabschlüsse.dta
Falls du doch eher Variante 1 versuchen willst, wäre das Vorgehen mehr oder weniger analog aber man müsste halt noch deutlich mehr Zwischenschritte selbst machen.
Ich hoffe, ich konnte dir hiermit einen kleinen Denkanstoß geben!
Viel Erfolg damit und beste Grüße aus Bamberg,
Benno Schönberger