doppelte Eintragungen in einem Datensatz umformatieren

Fragen zu Stata Syntax und Do-Files.

doppelte Eintragungen in einem Datensatz umformatieren

Beitragvon domibrown » Mi 7. Nov 2012, 10:40

Guten Tag,

ich habe das Problem, dass ich in einem Datensatz mit Informationen über verschiedene Personen mehrere Zeilen für die gleiche Person habe. Das sieht Beispielsweise so aus:

NAME, ID, BERUF, HOBBIES
Peter, 5, Fahrer, Fussball
Peter, 5, Sportler, Eishockey
Hans, 18, Lehrer, PC
Hans, 18, Kaufmann, PC

Ich suche nach einer Möglichkeit, dass Stata die Variable "ID" nach duplicates checkt, und falls vorhanden alle Informationen einer ID (Bspw.: 5) in eine Spalte packt. Bestmöglich werden dabei die unterschiedlichen Werte für die Variablen in einer eigenen Variable festgehalten. Das könnte dann bspw. so aussehen:

NAME, ID, BERUF, HOBBIES, NAME1, BERUF1, HOBBIES1
Peter, 5, Fahrer, Fussball, Peter, Sportler, Eishockey
Hans, 18, Lehrer, PC, Hans, Kaufmann, PC

Vielen Dank und mit freundlichen Grüßen,
domi
domibrown
 
Beiträge: 18
Registriert: Do 6. Sep 2012, 09:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: doppelte Eintragungen in einem Datensatz umformatieren

Beitragvon daniel » Mi 7. Nov 2012, 10:45

Die Suche nach Duplikaten scheint mir kein geeigneter Weg, weil die Umformug des Datensatzes dann "per Hand" nur für diese Fälle geschehen muss. Das hört sich aufwändig und langsam an. Such stattdessen besser nach -reshape-.

In etwa könnte das so aussehen

Code: Alles auswählen
bys ID : g j = _n
reshape wide BERUF HOBBIES ,i(ID) j(j)
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: doppelte Eintragungen in einem Datensatz umformatieren

Beitragvon domibrown » Mi 7. Nov 2012, 16:47

huhu,

zwei kleine DInge funktionieren nicht so richtig :( Ich erhalte die Fehlermeldung "ambiguous abbreviation", sobald eine Variable als Wert keine Zahl, sondern Text enthält.

Dazu wollte ich gerne wissen, ob man in den code anstelle alle variablen zu nennen, auch einfach so etwas wie varlist oder _all einbauen kann?

danke und lg domi
domibrown
 
Beiträge: 18
Registriert: Do 6. Sep 2012, 09:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: doppelte Eintragungen in einem Datensatz umformatieren

Beitragvon daniel » Mi 7. Nov 2012, 17:05

Aus der Fehlermedlung und v.a. der (vermuteten?) Ursache werde ich nicht wirklich schlau. Kannst Du ein reproduzierbares Beispiel erstellen, oder das etwas näher beschrieben? Ich habe keinerlei Probleme string Variablen zu -reshape-n.

Auch wenn es das Syntax-Diagramm von -reshape- nicht explizit macht, ist die Angabe einer Variablenliste möglich. Allerdings wird _all als Liste nicht funktionieren, weil das auch die ID und j Variable einbeziehen würde. Zudem möchtest Du konstante Variablen (z.B. Name) sicher nicht wiederholt in verschiedene neue Variablen schreiben? Versuch eine Liste der Art var1-varX zu spezifizieren.
Stata is an invented word, not an acronym, and should not appear with all letters capitalized: please write “Stata”, not “STATA”.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: doppelte Eintragungen in einem Datensatz umformatieren

Beitragvon domibrown » Do 8. Nov 2012, 09:36

Guten morgen,

dein Vorschlag mit der reshape Funktion funktioniert mittlerweile bestens. Ich hatte wohl ein paar Eingabefehler :). Vielen Dank dafür.
Liebe Grüße domi
domibrown
 
Beiträge: 18
Registriert: Do 6. Sep 2012, 09:34
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Stata Syntax

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste

cron