2016-05-24 5 views
0

Ich verstehe die Saiten 01-12-06 und 01-12-96 als Datumsangaben in Stata zu übersetzen, müssen Sie:Neuformatierung zweistelliges Jahr in Stata von String bisher Zeit mit Top-Jahr

  • den angenommene Präfix in der Maske angeben, "DM20Y" und
  • ein optionales Argument topyear hinzufügen: Uhr (string, Maske, topyear) als 2006

so generate double timestamp = clock(timestr, "DMY", 2020) macht das zweistellige Jahr 06 interpretiert, weil 2006 wird nicht über 2020 hinausgehen. Das zweistellige Jahr 96 würde als 1996 interpretiert werden, weil 2096 übertrifft 2020.

Aber ich habe Probleme bei der Umsetzung dieser. Anstatt also entschied ich mich zu:

g date = date(strdate, "MD20Y") 
format date %td 

Dann möchte ich im Grunde ersetzen Daten von mehr als 2040 mit dem Präfix „19“ (so 2097 wird 1997, aber 2006 Aufenthalte 2006).

Kann mir bitte jemand sagen, wie man diese bedingte Aussage schreibt? Ich bekomme immer Fehler.

Oder umgekehrt, wie verwende ich die topyear Funktionalität richtig?

Antwort

2

Die Funktion date() liefert numerisch tägliche Daten aus String-Argumenten mit einer Regel zur Interpretation. Es stammt von [Wortspiel beabsichtigt] die früheste Einführung von Datumsfunktionen in Stata 4 im Jahr 1995, als tägliche Daten waren die einzige Art speziell unterstützt, Kalenderjahre als selbsterklärend. Jetzt steht das Synonym daily() zur Verfügung und ich schlage vor, dass es stattdessen verwendet werden könnte und sollte, unabhängig davon, wie gut Ihre Leserschaft über Stata arcana informiert ist. Ansonsten, wie es oft passiert, können Leute anfangen zu raten, dass date() eine Allzweckfunktion ist, die andere Arten von Datum nach der Laune des Benutzers ergibt, entgegen aller Dokumentation zu diesem Punkt.

In Bezug auf Ihre Frage, ich denke, alles, was Sie weiter wissen müssen, ist, dass daily() und date() topyear Spezifikation zu unterstützen. Beispiele:

. di %td daily("24 May 96", "DMY", 2050) 
24may1996 

. di %td daily("24 May 06", "DMY", 2050) 
24may2006 

Meta-Tipp: Ich habe immer Prüftermin Probleme mit display und spezifische Beispiele, bei denen (glaube ich) Ich weiß, was die Antwort sein sollte.

Dokumentation von help daily() in Stata oder here

+0

Ja! Vielen Dank. Das war so schnell. – EconoQ