reshape zum zweiten

Fragen zu Stata Syntax und Do-Files.

reshape zum zweiten

Beitragvon Pfund » Sa 4. Mai 2013, 15:22

Hallo zusammen

Dies ist grad mein erster Beitrag da ich zum ersten mal mit Stata arbeiten muss/darf. Ich bin wirklich absoluter Neuling und habe schon mein erstes grosses Problem. Es geht einmal mehr um den reshape befehl.

Ich habe eine Exceltabelle wo ich in der ersten Spalte ca 140 Länder aufgelistet habe und in der ersten Zeile sind die Jahre 1997 bis 2011 aufgelistet. Es geht um den Korruptionsindex. D.h. ich habe zu jedem Land dementsprechend einige Werte zwischen 1 und 10. Das sieht dann etwa so aus:

country 1997 1998 ....... 2011
Afghanistan 3.2 3.1 3.4
Algerien 5.7 . 5.8
..
..
Zimbawe 1.1 1.2 1.1

von diesen Exceltabellen habe ich noch einige mehr für weitere Variabeln.

Das Ding ist das ich diese jetzt in Stata übertragen habe und den reshape befehl ausführen möchte. ich habe die erste zeile als variabeln übernehmen genommen und versuchte den reshape long i(..) j(..) befehl. Das Problem ist das bei mir gar nirgens i und j steht. d.h. stata erkennt das gar nicht.

es heisst dann folgendes: option i() required

Ich habe mich schon durch das Forum durchgeackert aber ich finde nirgens jemand mit dem selben Problem..

Kann mir jemand vielleicht helfen wie ich den reshape befehl ausführen kann?

Ich wäre euch super dankbar und hoffe auf eine gute Antwort.

Vielen Dank schonmal!
Pfund
 
Beiträge: 19
Registriert: Sa 4. Mai 2013, 14:57
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon daniel » Sa 4. Mai 2013, 15:56

Ich habe mich schon durch das Forum durchgeackert aber ich finde nirgens jemand mit dem selben Problem..


Da hast Du aber nicht allzu weit geschaut (ist aber nicht weiter schlimm). Beginnend nur zwei posts unter Deinem werden in

stata-syntax-f18/erste-zeile-aus-excel-wird-nicht-als-variablen-ubernommen-t358.html

und

stata-syntax-f18/groszer-datensatz-renditenberechnung-t353.html

nahezu identische Probleme diskutiert.

(Edit)

Da in Deinen Daten, soweit Du beschreibst, jedes Land nur einmal auftaucht, ist Dein Problem sogar noch um ein Vielfaches einfacher. Hier ein Beispiel

Code: Alles auswählen
// toy data
clear
inp str3 country var2 var3
"aaa" 10 20
"bbb" 30 40
"ccc" 50 60
end

l
// this how your data should look like in Stata

// rename variables
ren (var#)(foo#) ,renum(1997)

l

// now reshape
reshape long foo ,i(country) j(year)

l
// done
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon Pfund » Sa 4. Mai 2013, 16:20

Okay bevor sich jemand die Mühe macht, ich bin grad selbst draufgekommen. Gross-/Kleinschreibung :-) Ich werd mich aber bestimmt bald mal wieder melden. Das war ja leider erst ganz der Anfang.

Vielen Dank trotzdem dass es Leute wie euch gibt.
Pfund
 
Beiträge: 19
Registriert: Sa 4. Mai 2013, 14:57
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon Pfund » So 5. Mai 2013, 10:29

Hey Daniel. Vielen Dank für deine schnelle Antwort. Wie schon prophezeit stehe ich vor dem nächsten Problem. Und zwar will bei mir natürlich auch das mergen nicht gehen. Wie oben beschrieben habe ich mehrere Datensätze die ich zusammenfügen möchte. Ich habe also meine CPI-Daten verwendet, den reshape Befehl eingegeben, und sort country year. Jetzt wollte ich den zweiten Datensatz verwenden welcher die gleichen Länder und Jahre besitzt. Aber halt die Variable anders ist. Erstens: muss ich den auch erstmal mit dem reshape Befehl bearbeiten? Und zweitens wenn ich den merge 1:1 Befehl eingebe heisst es: variable year not found obwohl ich ja vorhin mit reshape gearbeitet habe. Ich habs auf verschiedene Varianten versucht aber das will nicht klappen. Und wenn ich den ersten Datensatz geladen habe muss ich danach clear drücken bevor ich zum zweiten komme oder wie macht man das, dass ich beide Datenstäze oben habe?

Danke
Pfund
 
Beiträge: 19
Registriert: Sa 4. Mai 2013, 14:57
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon daniel » So 5. Mai 2013, 11:03

Ich würde zunächst alle Excel sheets in Stata importieren, mittels -reshape- in die passende Form bringen und jeden einzeln speichern. Dann kannst Du die Datensätze auf country und year mergen.

Hier eine Skizze, nachdem alle Datensatätze umgeformt und gespeichert sind.

Code: Alles auswählen
u dataset_1 ,clear
mer 1:1 country year using dataset_2
drop _merge // nach Kontrolle

mer 1:1 country year using dataset_3
drop _merge // nach Kontrolle


Ich würde das alles in einer (inklusive Import und -reshape-) in einer Schleife schreiben, aber das mag für den Anfang noch etwas komplex sein.

btw. Aussagen wie

variable year not found obwohl ich ja vorhin mit reshape gearbeitet habe.


sind wenig hilfreich.

Code: Alles auswählen
reshape long foo ,i(id) j(foobar)


erzeugt offenbar keine Variable names year. Besser ist es, (Teile) Deine(s) codes zu zeigen, oder bestenfalls ein reproduzierbares Beispiel zu erzeugen.
Zuletzt geändert von daniel am So 5. Mai 2013, 11:07, insgesamt 1-mal geändert.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon Pfund » So 5. Mai 2013, 11:06

Wow es hat funktioniert. Tausend Dank. Nur eines ist mir nicht ganz klar. Wenn ich die reshape Daten speicher und dann merge wieso muss ich da drop merge machen? Und noch was. Wenn ich mehrere Datensätze mergen will kann ich da auch mit 1:1 oder mit m:1?
Pfund
 
Beiträge: 19
Registriert: Sa 4. Mai 2013, 14:57
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon daniel » So 5. Mai 2013, 11:10

Lies mal die Hilfe zu -merge- aufmerksam durch (-help merge-). Das schließt den Eintrag im verlinkten pdf manual mit ein!

Beide Deiner Fragen werden dort beantwortet. Du solltest zudem m.E. genau wissen, was Du da machst. Einen code aus dem Internet zu übernehmen, ohne sich intensiv mit den Befehlen auseinanderzusetzen ist (i) gefährlich, weil es sehr fehleranfällig ist, (ii) wenig hilfreich, weil Du so lediglich ein akutes Problem löst, aber rein gar nichts lernst.
daniel
 
Beiträge: 1060
Registriert: Sa 1. Okt 2011, 17:20
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: reshape zum zweiten

Beitragvon Pfund » So 5. Mai 2013, 11:18

Alles klar.

Vielen Dank
Pfund
 
Beiträge: 19
Registriert: Sa 4. Mai 2013, 14:57
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 7 Gäste

cron