Reshape von Datensatz

Fragen zu Stata Syntax und Do-Files.

Reshape von Datensatz

Beitragvon simonkay » Di 27. Aug 2013, 18:18

Hallo zusammen,

ich möchte einen Datensatz der so aussieht:

[Datum][120][122][12P]
[1.1.01][1][2][3]
[2.1.01][4][5][6]

reshape von wide zu long durchführen:

[Datum][Company][Price]
[1.1.01][120][1]
[2.1.01][120][4]
[1.1.01][122][2]
[2.1.01][122][5]
[1.1.01][12P][3]
[2.1.01][12P][6]

Die Formel "Reshape" kenn ich bereits, aber irgendwie krieg ich das dennoch nicht hin.

Wäre super nett, wenn mir da jemand helfen könnte!

Danke!

Stefan
simonkay
 
Beiträge: 4
Registriert: Do 15. Aug 2013, 22:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Reshape von Datensatz

Beitragvon daniel » Mi 28. Aug 2013, 10:33

Ich habe hier auf die selbe Frage genatwortet, und angemerkt, dass es sich vermutlich um einen schlechten Import der Daten aus einer anderen Software handelt. Dieser Eindruck wird dadurch unterstütz, dass Dein Datensatz unmöglich so aussehen kann, wie Du ihn hier beschreibst. 120, 122 und 12P sind definitiv ungültige Variablennamen. -reshape- scheint mir hier nicht ausreichend.

Bitte mach nähere Angaben darüber, wie Du diesen Datensatz aus welchem Format, wie in diesem Format in Stata eingelesen hast. Erstelle bitte zudem ein in Stata replizierbares Beispiel der Daten (add-ons-und-ado-files-f20/beispieldatensatze-erzeugen-t232.html). Vielleicht kann ich auf dieser Grundlage dann besser weiterhelfen.
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: Reshape von Datensatz

Beitragvon simonkay » Mi 28. Aug 2013, 18:51

Danke für die Antwort, Daniel!

Ich habe mal ein File hochgeladen!

Dieses soll nun wie folgt aussehen:

Date ... Name ... Code ... Price
27.08.2002 ... Felix ... 1200 ....... 1
28.08.2002 ... Felix ... 1200 ........ 2
29.08.2002 ... Felix ... 1200 ......... 3
27.08.2002 ... Stefan ... 120X........ 4
28.08.2002 ... Stefan ... 120X........ 5
29.08.2002 ... Stefan ... 120X ........6
27.08.2002 ... Andrew ... 120Z....... 7
28.08.2002 ... Andrew ... 120Z....... 8
29.08.2002 ... Andrew ... 120Z....... 9


Wäre mir wirklich ne super Hilfe, wenn du weißt, wie das geht.

Mir ist klar, dass man hier mit "reshape" arbeiten muss, aber insgesamt schaff ich dass irgendwie nicht :(

Gruß
Dateianhänge
beispiel.dta
(992 Bytes) 229-mal heruntergeladen
simonkay
 
Beiträge: 4
Registriert: Do 15. Aug 2013, 22:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Reshape von Datensatz

Beitragvon daniel » Do 29. Aug 2013, 11:27

Bist Du sicher, dass Du meine wiederholte Anfrage nach der Herkunft und dem Import der Daten nicht beantworten willst? Ich denke wirklich, es wäre es Wert dort anzusetzen bzw. zu überlegen, ob man das geschickter gestalten kann. Das ist das letzte Mal, das ich frage, und vor einer expliziten Antwort (die darf auch ein begründetes "Nein" sein) werde ich keine weitere Zeit investieren.

Nur soviel. Dein Problem lässt sich mit einem -reshape- nicht lösen. Die Struktur Deiner Daten ist "doppelt verdreht". Du müsstets die komplette Datenmatrix "kippen" (i.e. transponieren) um aus Variablen Beobachtgunen zu machen und umgekehrt. Dazu kommt, dass Variablennnamen momentan Werte (wenn auch string Werte) enthalten, die Du irgendwie integrieren musst. Dann müsstest Du die erste Beobachtung (im Ausgangszustand die erste Variable) löschen und als Variablennamen verwenden. Anschließend müsstets Du dann, die Namen bzw. Codes als Identifikation benutzend ins lange Format shapen. Über die Reihenfolge der Schritte bin ich mir nicht sicher, über die exakte "Natur" der Daten ebenso wenig (sind nummerische Variablen tatsächlich nummerisch, z.B. Felix, oder ist das ein dummer Zufall, weil Du beim Code von Felix keine Buchstaben verwendet hast?). Ich bin mir dagegen ganz sicher, dass hier eine sehr komplexe Datenmodifikation nötig ist, die einiges an Programmieraufwand erfordern wird.
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