Schleife (merge über mehrere Datensätze)

Fragen zu Stata Syntax und Do-Files.

Schleife (merge über mehrere Datensätze)

Beitragvon Julia_lisa » Do 19. Jun 2014, 19:25

Hallo,

ich bräuchte glaube ich einen kleinen Rat. Und zwar möchte ich mehrere Datensätze (Personenfragebögen "p" sind über mehrere Jahre (a -z (und ba bb bc)) hinweg einzeln gespeichert) anhand der Personennummer mergen.

Hierfür habe ich nun die folgende Schleife versucht:

foreach stub in a b ba bb bc c d e f g h i j k l m n o p q r s t u v w x y z {
local files "`files' C:\Users\XXX\Desktop\stata_v29\`stub' p"
}
merge persnr using `files', nokeep


Aber ich bekomme immer folgende Fehlermeldung:
file C:\Users\XXX\Desktop\stata_v29bp.dta not found

obwohl die Datei (bp.dta) ganz normal in dem Ordner gespeichert ist.

Kann mir jemand sagen woran das liegt bzw. helfen?

Ich wäre wirklich sehr dankbar!

Viele Grüße, JL
Julia_lisa
 
Beiträge: 12
Registriert: Mi 28. Aug 2013, 16:07
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Schleife (merge über mehrere Datensätze)

Beitragvon Julia_lisa » Do 19. Jun 2014, 20:13

Das Problem konnte ich glaube ich lösen, allerdings habe ich jetzt ein neues:

Und zwar erhalte ich jetzt den Fehlerbefehl "using data not sorted". Das waren sie zwar, trotzdem habe ich also folgende Schleife vorgeschaltet:

foreach stub in a b ba bb bc c d e f g h i j k l m n o p q r s t u v w x y z {
local files "`files' C:\Users\XXX\Desktop\stata_v29_2"
}
sort persnr

um dann wieder diese laufen zu lassen:

foreach stub in a b ba bb bc c d e f g h i j k l m n o p q r s t u v w x y z {
local files "`files' C:\Users\XXX\Desktop\stata_v29_2/`stub'p"
}
merge persnr using `files', nokeep

und trotzdem erhalte ich schon wieder den Fehler "using data not sorted, wie kann das denn sein?
Julia_lisa
 
Beiträge: 12
Registriert: Mi 28. Aug 2013, 16:07
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Schleife (merge über mehrere Datensätze)

Beitragvon daniel » Do 19. Jun 2014, 21:40

Ich habe das nur ganz grob überflogen, aber Du solltest eine Warnmeldung erhalten, dass Du die veraltete -merge- Syntax verwendest. Mein Tipp: finde heraus, wie Deine Daten zusammenpassen (1:1 m:1 oder 1:m; Vorischt (!) unter keinsten Umständen m:m verwenden, das führt mit an Sicherheit grenzender Wahrscheinlichkeit zur Katastrophe ohne Fehlermeldung) und verwende die neue Syntax, die die Daten selbst sortiert.
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: Schleife (merge über mehrere Datensätze)

Beitragvon Julia_lisa » Fr 20. Jun 2014, 20:26

Danke! Mergen hat mittlerweile (hoffe ich) geklappt. Vielleicht hast du ja noch eine Idee und zwar wollte ich jetzt "einfach" ins lange Format umschalten. Allerdings heißen die Variablen über die verschiedenen Jahre hinweg z.T. komplett anders (Lebenszufriedenheit ist 1984 (a) für eine Person (p) z.B. ap0101 und 1985 (b) ist sie für eine Person (p) bp3089). Gibt es eine einfache Lösung damit umzugehen? (Es sind SOEP-Daten btw., da muss es bestimmt etwas geben, ich bin da ja nicht die einzige)

Danke & LG, JL
Julia_lisa
 
Beiträge: 12
Registriert: Mi 28. Aug 2013, 16:07
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Schleife (merge über mehrere Datensätze)

Beitragvon daniel » Fr 20. Jun 2014, 21:57

Mir ist keine vorgefertigte Lösung bekannt. Aber -rename- ist in Stata 12 sehr mächtig geworden. Es sieht weit komplizierter aus, als es ist. Wenn die Variablennamen allerdings völlig wild durcheinander sind (kann ich mir im SOEP kaum vorstellen, die verschiedenen Buchstaben haben sicher eine Bedeutung), hilft Dir das auch nicht.
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


Zurück zu Stata Syntax

Wer ist online?

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