Hallo, ich habe folgendes Problem: Ich würde gerne Daten aggregieren. Die entscheidende Variable hierbei ist "ehrgeizig". Diese kommt je "id" unterschiedlich häufig vor. Nur wenn "ehrgeizig" für alle Beobachtungen eines Monats einheitlich "1" sind, dann soll "x"[1] - also die erste Beobachtung der neu zu generierenden Variablen "x" auch gleich "1" sein. Das Problem ist, dass die Anzahl der Beobachtungen für "ehrgeizig" immer unterschiedlich ist und keinem Muster folgt. Maximal treten jedoch 17 Beobachtungen in einem Monat für ehrgeizig auf. Eine derart flexible Schleife zu programmieren ist mir leider bisher nicht gelungen. Ein Ausschnitt des Datensatzes sieht so aus:
id Monat Jahr ehrgeizig x
900618 1 2000 1 0
900618 1 2000 0 0
900618 1 2000 1 0
900618 2 2000 1 1
900618 2 2000 1 1
900666 12 2000 1 1
900666 1 2001 0 1
900666 1 2001 0 1
900666 1 2001 0 1
900666 1 2001 0 1
900666 1 2001 0 1
900713 12 2000 0 1
900713 3 2000 0 0
900713 3 2001 1 0
900713 4 2002 0 0
900713 4 2002 0 0
900713 4 2003 0 0
900713 4 2003 1 0
Die zu generierende Variable "x" habe ich jetzt mal manuell erstellt, damit man es vielleicht leichter versteht.
ich denke, dass der Befehl
bysort id Jahr Monat: gen x=1 irgendwie in eine flexible Schleife gepackt werden muss, aber irgendwie schaff ich´s nicht...
Vielen Dank für eure Hilfe