Variable erstellen, die Häufigkeit neuer Beziehung zählt

Fragen zu Stata Syntax und Do-Files.

Variable erstellen, die Häufigkeit neuer Beziehung zählt

Beitragvon MariaS » Di 16. Jul 2013, 14:32

Hallo zusammen,
Ich arbeite mit einem Panel-Datensatz und würde gerne eine Variable erstellen, die angibt, wie häufig Personen ab 40 eine neue Beziehung beginnen. Dafür stehen mir die folgenden Variablen zur Verfügung:
pid=Personennummer
svyyear= Befragungsjahr
alter=Alter des Befragten im Befragungsjahr
neue_Bez=Aufnahme einer neuen Beziehung im Befragungsjahr (codiert mit 0=keine neue Bez.; 1=neue Bez., aber Partner nicht im Datensatz; 2=neue Bez., Partner im Datensatz

Verwende ich als Befehl
Code: Alles auswählen
bysort pid (svyyear): egen anz_bez_40=count(neue_bez>0 & neue_bez<. & alter>39)

zählt er irgendwie nur, wie oft der Befragte teilgenommen hat. Was ich aber gern hätte, wäre eine Variable, die quasi so aussieht:

Code: Alles auswählen
pid svyyear alter neue_bez anz_bez_40
1 1987 45 0 1
1 1988 46 1 1
2 1985 38 1 3
2 1986 39 0 3
2 1987 40 0 3
2 1988 41 1 3
2 1989 42 0 3
2 1990 43 0 3
2 1991 44 1 3
2 1992 45 0 3
2 1993 46 2 3
2 1994 47 0 3
2 1995 48 0 3
3 2000 31 0 0
3 2001 32 2 0
3 2002 33 0 0
4 1996 22 0 0


Ich hoffe, ihr könnt mir helfen. Komme mir nämlich gerade etwas betriebsblind vor...
Danke im Voraus :)
MariaS
 
Beiträge: 27
Registriert: Sa 17. Nov 2012, 17:11
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen, die Häufigkeit neuer Beziehung zählt

Beitragvon MariaS » Di 16. Jul 2013, 16:20

Hab mir grad durch eine wenig elegante Lösung per Hilfs-Dummy selbst geholfen. Falls es euch interessiert:
Code: Alles auswählen
gen bez_Dummy=.
replace bez_Dummy=0 if neue_bez==0
replace bez_Dummy=1 if neue_bez>0 & neue_bez<.

bysort pid (svyyear): egen anz_bez40=total(bez_Dummy) if alter>39
MariaS
 
Beiträge: 27
Registriert: Sa 17. Nov 2012, 17:11
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Variable erstellen, die Häufigkeit neuer Beziehung zählt

Beitragvon daniel » Di 16. Jul 2013, 16:23

Code: Alles auswählen
bys pid (svyyear) : g foo = sum(inlist(neue_bez, 1, 2)) if (alter > 39)
bys pid (svyyear) : replace foo = cond(mi(foo[_N]), 0, foo[_N])
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste

cron