Datum aus String Variable

Fragen zu Stata Syntax und Do-Files.

Datum aus String Variable

Beitragvon Katie » Di 7. Jan 2014, 17:50

Hallo Stata-User,
das Problem mit der Umwandlung von Datumsvariablen taucht immer wieder auf -ich weiß-.
Hier weiß ich einfach nicht weiter

Ich habe einen Datensatz importiert und diesen "reshaped" ,
da ich keine Jahrezahlen hatte sondern q1/1995 q2/1995... etc.
haben ich folgenden code benutzt
Code: Alles auswählen
reshape long Inflation, i( Country ) j(quarter,string)


damit ist die Variable Quarter als String definiert und erscheint als q11995 q21995....etc.
(ohne diese zusätzliche definition ist kein reshapen möglich, denke Stata erkennt einfach die Quartale nicht? )


um die Datumsvariablen zu recodieren benutze ich nun folgendes:
Code: Alles auswählen
. gen quart = quarterly( quarter , "QY")


An dieser Stelle ist der Haken, es werden missings generiert. Ich habe keine Ahnung warum und versucht mir im Manual unter "datetime translation" einen anderen Weg zu suchen, aber ich stehe auf dem Schlauch

Findet jemand den Fehler?

Liebe Grüße


(Ich habe den Stata Output auch nochmal hochgeladen )
Dateianhänge
Stataoutput.jpg
Stataoutput.jpg (188.18 KiB) 2592-mal betrachtet
Katie
 
Beiträge: 11
Registriert: Di 26. Nov 2013, 15:15
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Datum aus String Variable

Beitragvon daniel » Mi 8. Jan 2014, 13:22

Du suchst an der korrekten Stelle. Wie in [D] datetime translation nachzulesen

The pair of numbers to be translated must be separated by a space or punctuation. No extra characters are allowed.


Deine quarter Variable hat die Zeichen "q" und "/", die beide unter die Rubrik extra characters fallem, die ausdrücklich nicht erlaubt sind. Du musst also erst eine "saubere" Variante der quarter Variable erstellen, dann die -quarterly()- Funktion anwenden.

Code: Alles auswählen
g cleanq = substr(subinstr(quarter, "/", ".", .), 2, .)
g quart = quarterly(cleanq, "QY")
form quart %tq
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: Datum aus String Variable

Beitragvon Katie » Do 9. Jan 2014, 11:18

Hallo Daniel,
Danke für deine Hilfe. Ich verstehe den Lösungdansatz. Leider ist hier mein Problem, dass Stata beim einlesen der excel datei die Variablen nicht als
q1/1995
q2/1995
q3/1995
...
q4/2013

erkennt, sondern in der Variable quarter
q11995
q21995
q31995
q41995
...
q42013

codiert.

(Das habe ich in meiner Frage leider nicht so deutlich gemacht :(, ist aber im Anhang beim reshapen _j deutlich )

ich müsste den Code
Code: Alles auswählen
g cleanq = substr(subinstr(quarter, "/", ".", .), 2, .)


also so umschreiben, dass nicht anstelle des "/" ein Punkt gesetzt wird, sondern nach q1,q2,q3,q4 jeweils ein punkt generiert wird, bevor in der Übergeordneten Funktion dann alles ab dem 2. Zeichen übernommen wird.

Ich habe ein Brett vorm Kopf, wie stelle ich das an?


Viele Grüße
Katie
 
Beiträge: 11
Registriert: Di 26. Nov 2013, 15:15
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Datum aus String Variable

Beitragvon daniel » Do 9. Jan 2014, 13:25

Ich habe gerade keinen Zugang zu Stata, aber versuch mal

Code: Alles auswählen
g cleanq = substr(quarter, 1, 1) + "." + substr(quarter, 2,.)
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: Datum aus String Variable

Beitragvon Katie » Do 9. Jan 2014, 14:51

Hey!
Es hat geklappt. Habe den Code etwas verändert, damit die richtigen Angaben aus der Variable "quarter" übernommen werden.

so funktionierts:
Code: Alles auswählen
   
   gen cleanq = substr(quarter, 2, 1) + "." + substr(quarter, 3,.)
   gen quart = quarterly(cleanq, "QY")
   form quart %tq


Vielen Dank für die Hilfe ! Nun kann es weiter gehen ;)
Katie
 
Beiträge: 11
Registriert: Di 26. Nov 2013, 15:15
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 3 Gäste