Saturday 22 July 2017

Zusammenführen Mehrerer Datensätze In Stata Forex


Stata für Forscher: Kombinieren von Datensätzen Dies ist Teil acht der Stata for Researchers Serie. Eine Liste der Themen, die von dieser Serie behandelt werden, finden Sie in der Einleitung. Wenn Sie neu in Stata sind, empfehlen wir Ihnen, die Artikel zu lesen. Die Kombination von zwei Datensätzen ist eine gemeinsame Datenmanagement-Aufgabe, und eine, die sehr einfach durchzuführen ist. Allerdings ist es auch sehr einfach, falsch zu werden Vor der Kombination von Datensätzen ist sicher, dass Sie die Struktur der beiden Datensätze und die Logik der Art, wie Sie sie kombinieren verstehen. Andernfalls können Sie am Ende mit einem Datensatz, den Sie denken, ist bereit für die Analyse, aber ist wirklich völlig Unsinn. Stata versucht, um sicherzustellen, dass Sie durchgedacht haben, was Sie tun, aber kann nicht sagen, was macht Sinn und was doesnt. Stata arbeitet immer mit einem Datensatz zu einem Zeitpunkt, so dass Sie immer den Datensatz im Speicher (der Stammdatensatz) mit einem anderen Datensatz auf der Festplatte kombinieren (der so genannte Datensatz, aus Gründen, die klar sein werden, wenn Sie sehen Die Syntax). Anfügen von Datensätzen Stata ruft sie an, wenn Sie die Beobachtungen aus dem verwendeten Datensatz zum Stammdatensatz hinzufügen. Anhängen macht Sinn, wenn die Beobachtungen in beiden Datensätzen die gleiche Art von Dingen darstellen, aber nicht die gleichen Dinge. Zum Beispiel könnten Sie einen Datensatz von Personen aus Wisconsin an einen Datensatz von Personen aus Illinois anfügen. Die Datensätze sollten die gleichen oder meist die gleichen Variablen mit den gleichen Namen haben. Wenn eine Variable nur in einem Datensatz erscheint, werden Beobachtungen aus dem anderen Datensatz fehlende Werte für diese Variable gegeben. Die Syntax besteht darin, einen Append durchzuführen ist einfach: Laden Sie den Stammdatensatz und geben Sie dann Folgendes ein: anfügen mit Dataset, wobei dataset der Name des Datensatzes ist, den Sie anfügen möchten. Zusammenführen von Datensätzen Stata ruft sie zusammen, wenn Beobachtungen aus den beiden Datensätzen kombiniert werden. Es gibt in der Theorie vier Arten von Zusammenführungen: In einem Eins-zu-eins-Merge wird eine Beobachtung aus dem Stammdatensatz mit einer Beobachtung aus dem verwendeten Datensatz kombiniert. Ein Eins-zu-eins-Fusion macht Sinn, wenn die Beobachtungen in beiden Datensätzen die gleichen Dinge beschreiben, aber unterschiedliche Informationen über sie haben. Zum Beispiel könnten Sie die Antworten, die Menschen in der Welle eine der Umfrage mit den Antworten die gleichen Leute in Welle zwei der Umfrage gegeben zu verschmelzen. In einem Eins-zu-Viele - oder Viele-zu-Eins-Merge wird eine Beobachtung aus einem Datensatz mit vielen Beobachtungen von dem anderen kombiniert (wobei der Unterschied zwischen Eins-zu-Viele und Viel-zu-Eins ob der Stammdatensatz ist Hat den quotaanyquot oder den using data set). Diese Zusammenführungen sind sinnvoll, wenn Sie hierarchische Daten haben und ein Datensatz enthält Informationen über die Ebene ein Einheiten, während die andere enthält Informationen über die Ebene zwei Einheiten. Zum Beispiel könnten Sie Informationen über Haushalte mit Informationen über die Personen, die in diesen Haushalten leben, zusammenführen. Grundsätzlich gibt es auch viele bis viele Zusammenführungen. In der Praxis sind sie selten, wenn überhaupt nützlich. Wenn du dich selbst fähst, eine Viel-zu-Viele-Verschmelzung zu machen, solltest du überlegen, was du tust. Oft, was Sie wirklich tun müssen, ist zu identifizieren und zu korrigieren doppelte Identifikatoren, und dann wird Ihre Zusammenführung als one-to-one oder one-to-many arbeiten. In all den Zusammenschlüssen gut diskutieren, kombiniert Stata Beobachtungen, die den gleichen Wert einer Schlüsselvariable haben, typischerweise eine ID. Sie können auch basierend auf mehreren Variablen (z. B. kombinieren Daten für den gleichen Zustand und Jahr). In einem Eins-zu-Viele - oder Viele-zu-Eins-Merge ist es die Kennung für die Ebene zwei Einheiten, die die Schlüsselvariable ist (z. B. Haushalts-ID, keine individuelle ID). Es ist sehr wichtig, dass die Schlüsselvariable in beiden Datensätzen das gleiche Format hat. Wenn eine Beobachtung in einem Datensatz nicht mit einer Beobachtung in der anderen übereinstimmt, werden ihm fehlende Werte für die Variablen aus dem anderen Datensatz gegeben. Da die Lebensfähigkeit eines Forschungsprojektes oft davon abhängt, wie viele Beobachtungen tatsächlich zusammenlaufen (z. B. wie viele Menschen aus der Welle einer der Umfrage in Welle zwei gefunden werden konnten) gibt Stata Ihnen Werkzeuge, um herauszufinden, wie viele Beobachtungen tatsächlich zusammengeführt wurden, und für die Prüfung derjenigen Didnt Wenn in beiden Datensätzen eine Variable existiert, werden die Werte aus dem Stammdatensatz beibehalten und die Werte aus dem verwendeten Datensatz werden verworfen. Gelegentlich ist das, was du willst, aber es ist eher ein Fehler. Im Allgemeinen sollten Sie Ihre Daten so einrichten, dass die einzigen Variablen die zu fusionierenden Dateien gemeinsam sind, sind die Schlüsselvariablen. Die Syntax für einen Merge ist: Fusionstyp Keyvars mit Dataset Der Typ muss 1: 1 (eins zu eins), 1: m (eins zu viele), m: 1 (viele-zu-eins) oder m: M (viele zu viele) keyvars ist die Schlüsselvariable oder Variablen und dataset ist der Name des Datensatzes, den Sie zusammenführen möchten. Ein Beispiel für die Kombination von Datensätzen Die Beispiele beinhalten mehrere Dateien mit fiktiven Studenten Informationen aus 2007. scores. dta enthält die Schüler Scores auf einem standardisierten Test, demographics. dta enthält demografische Informationen über sie, und teachers. dta enthält Informationen über ihre Lehrer. Nehmen Sie sich einen Moment Zeit, um jede Datei zu betrachten, dann starten Sie eine do-Datei, die Punkte lädt. In diesem Datensatz repräsentiert jede Beobachtung einen Schüler. Grasen Sie und sehen Sie, dass Sie einen Studentenausweis (ID), eine Lehrer-ID (Lehrer) und eine Punktzahl für jeden haben. Ihre erste Aufgabe ist es, die demografischen Informationen hinzuzufügen. In der Demographie gibt es jede Beobachtung auch einen Schüler, wobei die Variablen id und Rasse sind. So ist dies ein Job für ein Eins-zu-eins-Merge und die Schlüsselvariable ist id. Fusion 1: 1 ID mit Demographie Stata wird berichten, dass alle 60 Beobachtungen übereinstimmen. Es wird auch eine Variable namens Merge erstellen. Ein Eins in Merge bedeutet eine Beobachtung nur kam aus dem Stamm Datensatz ein zwei Mittel, die es nur aus der Verwendung von Datensatz kam und ein Drei bedeutet eine Beobachtung erfolgreich abgestimmt und somit von beiden kam. In diesem Fall sehen wir, dass alle Beobachtungen aufeinander abgestimmt sind und somit gleich drei sind, also gibt es keine Notwendigkeit, die Variable zu halten. In der Tat müssen wir es fallen lassen (oder umbenennen), bevor wir weitere Fugen machen: Weiter fügen Sie Informationen über Lehrer hinzu. In teachers. dta stellt jede Beobachtung einen Lehrer dar, und jeder Lehrer hat viele Studenten. Das macht das zu einer Viel-zu-eins-Verschmelzung (da die vielen Studenten derzeit im Gedächtnis sind und der eine Lehrer in der Verwendung von Datensatz ist). Die Schlüsselvariable ist nicht id. Denn das bezieht sich auf die Studenten, aber Lehrer: fusionieren m: 1 Lehrer mit Lehrern Wieder alle 60 Beobachtungen fusionierten ordnungsgemäß, so können Sie fallen zu verschmelzen. Kombinieren von Panel-Daten Angenommen, Sie haben diese Studenten seit mehreren Jahren verfolgt. Der Datensatz panel2007.dta enthält eine vereinfachte Version dieses Datensatzes: nur id und score. Der Datensatz panel2008.dta hat die gleichen Variablen für ein anderes Jahr. Wie würden sie sie kombinieren Der richtige Weg, um sie zu kombinieren, hängt davon ab, welche Datenstruktur Sie wollen. Hierbei handelt es sich um hierarchische Daten, bei denen ein Level 2 ein Student ist und ein Level eine Einheit ist ein Studiendaten für ein bestimmtes Jahr. So kann es in breiter Form dargestellt werden (eine Beobachtung pro Schüler) oder in langer Form (eine Beobachtung pro Schüler pro Jahr). Um die Daten in langer Form zu setzen, stapeln Sie einfach die beiden Datensätze mit append. Jedoch müssen Sie wissen, welches Jahr jede Beobachtung repräsentiert. Um dies zu tun, fügen Sie eine Jahresvariable zu beiden Datensatz, mit dem Wert 2007 für die 2007 Daten und den Wert 2008 für die Daten 2008. Sie können dies mit der folgenden Datei tun: Löschen Sie alle setzen mehr aus Capture Log schließen Protokoll mit combine1.log, ersetzen use panel2007 gen year2007 save panel2007append verwenden panel2008 gen year2008 append using panel2007append save appendedData, ersetzen Um die Daten in breiter Form zu setzen, Führe ein Eins-zu-eins mit id als Schlüsselvariable zusammen. Aber zuerst müssen Sie die Variablennamen ändern. Erinnern Sie sich, dass in weiten Form, ist es die Variablen Namen, die Ihnen sagen, welche Ebene eine Einheit youre reden. Also anstatt zu punkten. Du brauchst score2007 und score2008. Löschen alle setzen mehr aus capture log schließen log mit combine2.log, ersetzen use panel2007 rename score score2007 save panel2007merge use panel2008 rename score score2008 merge 1: 1 id mit panel2007merge speichern mergedData, ersetzen Dieses Mal sehen Sie, dass eine Beobachtung nicht übereinstimmt. Sie können sehen, welche durch Eingabe: Student Nummer 55 war nicht in Panel2008 und konnte daher nicht abgestimmt werden. Als Ergebnis haben wir keine Ahnung, was seine oder ihre Test-Score war im Jahr 2008. Leider ist dies sehr häufig8212studenten bewegen aus der Schule Bezirke zwischen den Tests die ganze Zeit. Wenn Ihre gesamte Forschungs-Agenda von beiden Test-Scores abhängt, müssen Sie möglicherweise Beobachtungen fallen lassen, die in beiden Datensätzen nicht vorhanden sind. Sie können dies an dieser Stelle durch Hinzufügen: drop if merge3 Sie können auch festlegen, welche Beobachtungen direkt im Merge-Befehl gehalten werden sollen: Fusion 1: 1 id mit panel2007merge, keep (match) keep (match) bedeutet nur Beobachtungen, die übereinstimmen . Die Alternativen sind Meister und verwenden. Und du kannst mehr als eins auflisten. Zum Beispiel, um Beobachtungen zu halten, die übereinstimmen und Beobachtungen, die nur aus dem Stammdatensatz kommen, während Sie Beobachtungen wegwerfen, die nur aus dem verwendeten Datensatz kommen, sagen Sie bitte (Master Match). Gemeinsame Probleme mit Merges Merges wird alle möglichen Probleme mit Ihrem Datensatz aufdecken (und wenn theyre nicht fixes Merging wird neue einführen). Hier sind zwei häufige und wie man sie beheben kann: Schlüsselvariablen, die in verschiedenen Formaten gespeichert werden Während Stata glücklich mit verschiedenen Arten von Zahlen übereinstimmt (zB Ints und Floats), können sie nicht mit Zahlen und Strings übereinstimmen. IDs können entweder gespeichert werden (solange du einen numerischen Typ wählst, der genügend precision8212see mit Daten hat) und es ist nicht ungewöhnlich zu finden, dass deine Datensätze die ID auf unterschiedliche Weise speichern. In diesem Fall ist es in der Regel am besten, die Zahlen in Strings umzuwandeln: gen idStringstring (id) drop id rename idString id Die string () - Funktion nimmt eine Zahl und konvertiert sie in einen String. Sie können ihm ein zweites Argument geben, das das Format enthält, in dem die Zahl bei Bedarf quittiert werden soll. Duplizieren von IDs Wenn Sie versuchen, einen Merge zu machen, und Sie erhalten eine Fehlermeldung wie quotvariable id nicht eindeutig identifizieren Beobachtungen in der master dataquot bedeutet dies, dass Sie doppelte IDs in den Datensatz erwähnt haben. Dieses Problem muss behoben werden, bevor Sie fortfahren. Ändern Sie nicht einfach die Art des Zusammenführens für den relevanten Datensatz von quotonequot zu quotmanyquot in der Hoffnung, die Fehlermeldung weg zu machen8212die resultierende Datensatz wird keinen Sinn für die betroffenen Beobachtungen machen. Eine mögliche Quelle von Duplikaten ist ein Rundungsfehler, da die IDs in einem unangemessenen Variablentyp gespeichert werden. In diesem Fall müssen Sie zurück zu den ursprünglichen Daten gehen und sicherstellen, dass die Bezeichner als ein Typ gespeichert werden, der nicht um sie herum läuft, wie lang, doppelt oder string. Beachten Sie, dass für die Zwecke der Verschmelzung fehlende Werte genau wie jeder andere Wert behandelt werden. Wenn du Beobachtungen mit fehlenden IDs hast, wird Stata sie als Duplikate zählen. Youll muss sie wahrscheinlich vor dem Zusammenführen fallen lassen. Aber die meiste Zeit doppelte IDs resultieren aus Fehlern in den Daten. Youll muss etwas über sie tun, bevor Sie Ihren Zusammenschluss ausführen können. Starten Sie eine do-Datei, die den Datensatz-Mergefehler lädt. Dieser Datensatz enthält Schüler, aber einige von ihnen haben doppelte IDs, die behoben werden müssen. Sie können sehen, wie viele Probleme Sie mit Duplikaten haben Bericht: Duplikate Bericht id Dies sagt Ihnen, wie viele Beobachtungen haben den gleichen Wert der ID. Der Ausgang sagt Ihnen, dass keine ID mehr als zweimal erscheint, aber zwölf Beobachtungen haben doppelte IDs. Für weitere Untersuchungen schaffe ich eine Variable, die dir sagt, wieviele Exemplare von jeder ID sind: bysort id: gen copiesN Dann kannst du nur die Problembeobachtungen anschauen mit: browse if copiesgt1 Für die Beobachtungen mit id gleich 9, 26 und 33, die beiden Beobachtungen mit der gleichen ID sind identisch. Dies deutet darauf hin, dass derselbe Schüler zweimal eingegeben wurde und Sie das Problem beheben können, indem Sie einfach die zusätzlichen Beobachtungen fallen lassen. Tun Sie dies mit: Beachten Sie, dass im Gegensatz zu den Duplikaten Bericht Befehl Sie lief früher, dieser Befehl hat keine Varlist. Dies bedeutet, dass es nur doppelte Beobachtungen fällt, wenn sie den gleichen Wert für alle Variablen haben, nicht nur id. Sie können es eine Varlist, so dass es sinkt Beobachtungen, wenn nur diese Variablen haben die gleichen Werte, aber seien Sie sehr vorsichtig, dies zu tun. An diesem Punkt in komplexen Problemen können Sie die Kopien-Variable, die Sie zuvor erstellt haben, löschen und neu erstellen, wenn Sie sciesgt1 nicht mehr die Beobachtungen zeigen, die Sie bereits festgelegt haben, aber theres keine Notwendigkeit in diesem Datensatz. Für die Beobachtungen mit id gleich 64, 74 und 94 zeigen die anderen Variablen, dass die Beobachtungen mit der gleichen ID nicht dieselbe Person sind. Dies ist ein wichtiges Problem für die Verschmelzung: Sie können nicht sicher sein, welche quittierten 64quot in diesem Datensatz geht mit dem Quoten in den hypothetischen anderen Datensatz. Hinzufügen von mehr Variablen kann helfen. Zum Beispiel, in diesem Fall, Verschmelzung durch id und Rasse würde es Ihnen erlauben, korrekt passen die beiden Themen mit id gleich 94. Mischen durch id. Rennen. Und Klasse würde es Ihnen erlauben, die Themen mit id gleich 74 korrekt anzupassen. Denken Sie nur daran, dass, wenn der Datensatz, den Sie mit diesem fusionieren wollten, für das nachfolgende Schuljahr war, wie in unserem vorherigen Beispiel, das Sie von einem abziehen müssen Klasse variabel zuerst. Wenn Sie diese Route wählen, erstellen Sie die Kopienvariable mit dem vollständigen Satz von Variablen, die Sie planen, um in der nach Präfix übereinstimmen und sehen, wie viele Duplikate übrig sind. Nichts wird mit den beiden Beobachtungen mit id gleich 64 helfen, und in einem größeren Datensatz ist es weniger wahrscheinlich, dass die Anpassung durch ein paar mehr Variablen können Sie eindeutig identifizieren Themen. In solchen Fällen müssen Sie wahrscheinlich alle Beobachtungen fallen lassen, die Sie nicht eindeutig identifizieren können, da Sie zuverlässig nicht dazu passen können. Sie können dies tun mit: drop if copiesgt1 Eine alternative Möglichkeit, Datensätze in breite Form zu kombinieren, besteht darin, sie zuerst anzubringen und dann neu zu gestalten. Kombinieren Sie panel2007 und panel2008 in breite Form mit dieser Methode. (Lösung) Wenn Sie die zwei Jahre der Daten in langer Form mit append kombinieren. Wie kann man die Beobachtung finden, die im Jahr 2008 nicht erscheint (Lösung) Kombinieren Sie error2007.dta und error2008.dta, indem Sie sie in die breite Form verschmelzen und alle Probleme beheben, die Sie finden. Dann füge die beiden Datensätze an und versuche, die gleichen Probleme zu finden. (Solution) Zuletzt überarbeitet: 12292015In Stata, wie kann ich zwei Datensätze zusammenführen Um zwei Datensätze in Stata zusammenzuführen, sortiere zuerst jeden Datensatz auf die Schlüsselvariablen, auf denen die Verschmelzung basiert. Verwenden Sie dann den Befehl. merge, gefolgt von einer Liste von Schlüsselvariablen und Datensätzen. In Stata Version 11 und später: Fusion 1: 1 varlist mit Dateiname, Optionen Wenn du mit Stata Version 10 oder älter bist, weigere ich die 1: 1 Spezifikation. Beobachtungen in jedem Datensatz sollten in der Eins-zu-Eins-Zusammenfügung eindeutig sein. Angenommen, wir haben zwei Schlüsselvariablen id und name in zwei Datensätzen stat und mathematik. Der folgende Code sortiert und speichert den statischen Datensatz und sortiert dann den mathematischen Datensatz. Dann, während der Mathe-Datensatz noch im Speicher ist, fügt er (unter Verwendung des stat-Datensatzes) auf den Schlüsselvariablen id und name ein: Wenn zwei Datensätze neben den Schlüsselvariablen Variablen teilen, verwenden Sie die Option, um die fehlenden Werte zu ersetzen Die Master-Datei (im Speicher) mit entsprechenden nicht fehlenden Werten in der sekundären Datei. Verwenden, aktualisieren ersetzen, um nicht fehlende Werte in der Master-Datei mit entsprechenden nicht fehlenden Werten in der sekundären Datei zu ersetzen. Um das Dropdown-Menü in Stata Version 11 und höher zu verwenden: Dataxa0gt Combinexa0Datasetsxa0gt Mergexa0Twoxa0Datasets Wenn Sie Fragen zur Verwendung von statistischer und mathematischer Software an der Indiana University haben, wenden Sie sich an Research Analytics. Research Analytics befindet sich auf dem IU Bloomington Campus bei Woodburn Hall 200 Mitarbeiter sind für die Beratung Montag-Freitag 9 Uhr und nach Vereinbarung zur Verfügung.

No comments:

Post a Comment