es geht um ein Problem, dass anfangs in dem Thread "Kalkulation von Variablen" (http://www.stata-forum.de/longitudianal-und-panel-analyse-f11/kalkulation-von-variablen-t103.html) besprochen wurde.
Ich habe ein Datenset mit mehreren Firmen über mehrere Jahre und möchte "size dummies" definieren (in Quntiles). Den folgenden Code hatte Daniel vorgeschlagen und dieser funktioniert auch gut, mit dem einzigen nachteil, dass bei einigen observationen einfach werte von anderen variablen aufeinmal mit "." ausgegeben werden. Hier ersteinmal der code:
- Code: Alles auswählen
xtset ID month
qui levelsof month ,l(avar)
reshape wide mmv , i(ID) j(month)
foreach y of loc avar {
_pctile mmv`y' ,p(20 40 60 80)
qui g byte mvdb`y' = cond(mmv `y' <= `r(r1)', 1, cond(mmv `y' > `r(r1)' & mmv `y' <= `r(r2)', 2, cond(mmv `y' > `r(r2)' & mmv `y' <= `r(r3)', 3, cond(mmv `y' > `r(r3)' & mmv `y' <= `r(r4)', 4, 5))))
}
reshape long mmv mvdb, i(ID) j(month)
Zu anfang hatte ich bemerkt, dass einige meiner Market-Values negativ sind und diese habe ich eliminiert, verbleibe also nur noch mit positiven werten. Bevor ich die Schleife laufen lasse sind alle daten vollständig, sobald sie einmal gelaufen ist werden dann aufeinmal die Werte von allen anderen variablen von bestimmten observationen mit "." überschrieben. wenn ich diese observationen dann rausschmeiße -drop if mmv>=.- und dann die schleife erneut laufen lasse, passiert dasselbe! es kann also nicht an fehlenden "mmv" werten liegen.
Ich habe auch versucht, die Dummies in einem separaten *dta file zu definieren und dann nur die Dummy variable "mvdb" in mein vollständiges Datenset zu mergen. Hier passiert dann dasselbe, von bestimmten observationen werden einfach werte mit "." ersetzt.
Hat irgendjemand eine Idee wo der fehler ist?
Vielen Dank im Voraus!