Wie lösche ich die Beobachtungen mit keine Daten in Stata?
Habe ich die Daten mit IDs die möglicherweise oder möglicherweise nicht über alle Werte vorhanden. Ich will NUR das löschen der Beobachtungen keine Daten in Ihnen; wenn es Beobachtungen auch nur mit einem Wert, ich will, Sie zu behalten. ZB, wenn meine Daten eingestellt ist:
ID val1 val2 val3 val4
1 23 . 24 75
2 . . . .
3 45 45 70 9
Ich Sie löschen möchten nur die ID 2, da es die einzige ist, die keine Daten-nur eine ID.
Habe ich versucht Statalist und Google, konnte aber nichts finden, was relevant ist.
Eine einfache Möglichkeit ist die Verwendung
Sorry Aspen. Mein Beispiel könnte übersichtlicher gewesen -- die Namen der Variablen sind nicht linear.
Für Vollständigkeit, beachten Sie, dass die "Zeilen" und "Aufzeichnungen" sind nicht die Stata-sprechen; die Stata Begriff "Beobachtungen".
Danke. Ich bearbeitet meine Frage, um dieses Problem zu beheben.
drop if missing(val1-val4)
Sorry Aspen. Mein Beispiel könnte übersichtlicher gewesen -- die Namen der Variablen sind nicht linear.
missing()
gibt 1 zurück, wenn die Argumente auswertet, fehlt.Für Vollständigkeit, beachten Sie, dass die "Zeilen" und "Aufzeichnungen" sind nicht die Stata-sprechen; die Stata Begriff "Beobachtungen".
Danke. Ich bearbeitet meine Frage, um dieses Problem zu beheben.
InformationsquelleAutor | 2014-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese wird auch Arbeit mit strings, solange Sie leer sind:
Dieser bekommt eine Liste von Variablen, die nicht die id und löscht alle Beobachtungen, die nur die id.
dropmiss
(SJ) ist diesem problem gewidmet. Ihre Suche Strategie sollte anfangen, mitsearch
in Stata, nicht das internet.dropmiss
ist definitiv der Weg zu gehen. Kann man wieder/entdecken Sie es einfach mitfindit drop observations with missing data
.Vielen Dank Nick. Das Problem ist gelöst.
Siehe auch UPDATE auf meine Antwort auf
missings
(SSC).InformationsquelleAutor Dimitriy V. Masterov
Brian Albert Monroe ist ganz richtig, dass jemand mit
dropmiss
(SJ), muss es zuerst installieren. Da es Interesse an unterschiedlichen Möglichkeiten, dieses problem zu lösen, werde ich weitere hinzufügen.Obwohl es sollte einen Kommentar unter Brians Antwort, werde ich hier hinzufügen, einen Kommentar hier als (a) dieses format eignet sich vor allem für das zeigen von code (b) der Bemerkung folgt aus meinem code oben. Ich bin damit einverstanden, dass
unab
ist ein nützlicher Befehl, und haben oft gelobt, es in der öffentlichkeit. Hier ist es jedoch unnötig, da Brian ' s Schleifen könnte leicht etwas anfangen wieUPDATE September 2015: Siehe http://www.statalist.org/forums/forum/general-stata-discussion/general/1308777-missings-now-available-from-ssc-new-program-for-managing-missings für Informationen über
missings
, betrachtet der Autor sowohl eine Verbesserung aufdropmiss
. Die syntax, umdrop
Beobachtungen, wenn und nur wenn alle Werte fehlen, istmissings dropobs
.InformationsquelleAutor Nick Cox
Nur ein weiterer Weg, es zu tun, die hilft, die Sie entdecken, wie flexibel die lokale Makros sind ohne Installation nichts extra zu Stata. Ich habe selten sehen-code mit einheimischen speichern-Befehle oder logische Bedingungen, aber es ist oft sehr nützlich.
Nun
dropmiss
mag bequem sein, sobald Sie haben es heruntergeladen und installiert, aber wenn Sie schreiben eine do Datei von jemand anderem verwendet werden, es sei denn, Sie haben auchdropmiss
installiert, der code wird nicht auf Ihre Maschine.Mit diesem Ansatz, wenn Sie entfernen die Zeilen Kommentare und die zwei unnötigen Liste der Befehle, dies ist eine ziemlich spärliche 5 Zeilen code, die ausgeführt wird, mit Stata aus der box.
help limits
ist die Referenz hier. In deinem Beispielr(varlist)
wirklich enthält alle Variablen-Namen. Sie brauchen nur zu laufendisplay "`r(varlist)'"
(beachten Sie die Anführungszeichen).Als seitliche Anmerkung: wenn Sie wollen, beziehen sich auf alle Variablen im Datensatz, die Sie verwenden können
_all
. Zum Beispielforeach vname of varlist _all { ...
. Keine Notwendigkeit fürunab
hier.Ihr code wird davon ausgegangen numerischen Variablen.
missing()
ist der Weg zu einer Allgemeinen test.Ich denke es ist noch wichtig zu beachten, dass der Punkt, den ich machte, war zunächst, dass die lokalen Makros speichern können logische Bedingungen. In vielen Datensätzen, wo das dataset abgeleitet ist, die aus Umfragen, fehlende Daten ist oft rekodiert als -9 oder -99, auch eine Antwort von "ich weiß nicht" aufgezeichnet werden können, als -33. Es ist oft angebracht, fallen diese Daten für bestimmte Analysen, in dem Fall
missing()
ist unzureichend. Der code, den ich anzeigen kann leicht geändert werden, für diesen Zweck.Es ist sicherlich eine gute Praxis, um Fehler zu korrigieren, indem die Bearbeitung. Der code, den ich schrieb kann auch geändert werden, zu bewältigen, mit anderen übereinkommen, was bedeutet fehlende, aber eine Stata-Empfehlung ist die Verwendung
mvdecode
in solchen Fällen.InformationsquelleAutor Brian Albert Monroe