Hallo Jungs,
ich habe eine kleine weitere Frage, die ich auch nach ewigem gesuche im Internet/Help files/etc. nicht lösen konnte. In einem Ordner habe ich viele verschiedene .dta files der gleichen Form. Mit dem untenstehenden Code kann ich die Files zu zusammen-append-en und anschließend fehlende Values der Variable "tnnr" direkt aus dem Datensatz löschen. Soweit alles bestens ...
Im nächsten Schritt wird eine Variable (dup) generiert, die doppelte Werte von "tnnr" angibt. Sofern "tnnr" mehrmals den gleichen Wert annimmt, ist der zugehörige "dup" Wert > 0. Ich schaffe es leider nicht nun den folgenden If / Else Befehl zu integrieren:
Falls dup > 0, dann unterbreche das do file und gib eine fehlermeldung "Fehlermeldung xyz" aus
Falls dup = 0, dann drop dup
- Code: Alles auswählen
clear
cd "$Imported_FeedbackI"
qui fs *
foreach f in `r(files)' {
append using `f'
}
** sort and remove values matching a missing ID **
sort tnnr
gen Empty=1 if tnnr == .
drop if Empty == 1
drop Empty
** remove duplicated ID values **
quietly by tnnr: gen dup = cond(_N==1,0,_n)
Vielleicht hat jemand eine Idee, wie ich das umsetzen muss. Es ist mit Sicherheit ziemlich einfach
lg domi