Ich möchte neue Vorkommen eines neuen agent_type
Tag markieren. Ich verwende den folgenden Code, dies zu tun:Egen-Tag überspringt
clear
input long patid float(how_many_drugs agent_type eventdate) byte tag4
01 3 4 14962 1
01 3 5 14962 1
01 3 4 14997 0
01 3 9 14997 0
01 3 5 15025 0
01 3 9 15040 1
01 3 4 15040 0
01 3 5 15082 0
end
format %td eventdate
label values agent_type drugstypes1
label def drugstypes1 4 "alpha blocker", modify
label def drugstypes1 5 "ace_inhib", modify
label def drugstypes1 9 "loop", modify
label def drugstypes1 13 "CCB", modify
egen tag4=tag (patid agent_type_new how_many_drugs)
Der Code funktioniert gut, bis wir das erste Vorkommen von „Schleife“ erreichen, wo ein Tag nicht erzeugt wird. Vielmehr wird das Tag beim zweiten Auftreten von "loop" erzeugt.
Warum passiert das und wie kann ich dafür sorgen, dass beim ersten Auftreten ein Tag erstellt wird?
Ich habe sichergestellt, dass die Daten nach patid event_date
vor dem Ausführen des Tags Code sortiert wurden.
Danke @NickCox. Du hast recht, das "how_many_drugs" war überflüssig. Vielen Dank für die Erklärung der Funktionsweise hinter dem Egen-Tag – user2363642
Beachten Sie, dass weder die Hilfe für 'gen' noch der manuelle Eintrag erste Vorkommen erwähnt! Vielleicht hatten Sie empirisch beobachtet, dass erste Vorkommen in der Praxis oft solche waren. Die ursprüngliche Diskussion von 1999 in http://www.stata.com/products/stb/journals/stb50.pdf (siehe S.16) diskutiert die Code-Logik wie oben. Auf diesen Artikel wird im Handbuch verwiesen, aber er ist nicht entscheidend für das Verständnis von "esgen". –
Ja, ich habe bemerkt, dass in den meisten Fällen das erste Vorkommen markiert wurde - und dann, als ich versuchte, es auf mehrere verschiedene Arten auszuführen, konnte ich die verschiedenen Tags, die zu unterschiedlichen Zeiten auftraten, nicht zurückverfolgen. Mein Fehler, wenn ich das erste Mal vermutete. Nochmals vielen Dank für den Hinweis auf meinen Fehler. Hoffe, dass jemand anderes auch davon lernt. – user2363642