Parsen von ISO8601 in R

8

Gibt es in R vorhandene Implementierungen, um ISO8601 -Strings in POSIXt-Objekte zu analysieren? Die ISO8601-Spezifikation ermöglicht das Drucken von Datum / Uhrzeit in verschiedenen (nicht überlappenden) Formaten. Daher muss man wahrscheinlich etwas Magie für reguläre Ausdrücke verwenden, um das Format zu erkennen und an strptime zu übergeben.

Dies richtig zu tun, könnte tatsächlich ziemlich herausfordernd sein , aber etwas, das die gebräuchlichsten Formate erkennt, wäre schon sehr hilfreich. Ich kann mir kaum vorstellen, dass ich der Erste bin, der darauf eingeht, aber es fällt mir schwer, gute Implementierungen zu finden.

    
Jeroen 25.08.2012, 21:43
quelle

4 Antworten

7

Genau genommen können Sie nicht. Ich muss nichts über R oder Crane wissen (oder sogar, was sie sind), um Ihnen das zu sagen, weil ich ISO 8601 gut genug kenne, um zu wissen, dass ISO 8601 allein nicht zu wissen ist, was gemeint ist vor allem in den kürzeren Formen.

Finden Sie heraus, welches Profil von ISO 8601 die andere Partei verwendet. Wenn sie nicht wissen, wovon Sie reden, dann werden Sie ihnen einen Gefallen tun, wenn Sie auf das hinweisen, was ich gerade im obigen Absatz gesagt habe. Wie ich einmal an anderer Stelle geschrieben habe,

  

Leider denken viele Leute an ein bestimmtes Profil, das sie kennen, wenn sie "ISO 8601" hören, andere Leute wissen, dass die Verwendung von 8601 eine gute Sache ist, aber sie sind nicht mit den Details der Implementierung vertraut. Daher könnte ein Spezifikations- oder Anforderungsdokument 8601 erwähnen, aber nicht expliziter sein. In solchen Fällen ist es wichtig, sich Klarheit zu verschaffen, anstatt davon auszugehen, dass das Format, das Sie für "ISO 8601" halten, das richtige ist.

Sagen Sie ihnen also: "ISO 8601 ist nicht spezifisch genug, ich muss genau wissen, was Sie tun, was Ihre Grenzen für die Präzision sind." (Und möglicherweise, was Ihre Politik auf Daten vor 1582 und vielleicht wieder vor 0001 sind, Ihre Politik auf Schaltsekunden, und ein paar andere Dinge offen gelassen, aber der Standard)

Dann sollte alles, was Sie damit zu tun haben, einfach genug sein: Abgesehen von diesem Punkt der Mehrdeutigkeit ist es ein ziemlich unkomplizierter Standard. Es sollte nur als ein Standard zum Definieren von Datumsformaten gedacht werden, mehr als eines, das ein Datumsformat definiert.

    
Jon Hanna 25.08.2012, 22:10
quelle
4

Siehe .parseISO8601 im xts-Paket für eine Implementierung. Ich bezweifle, dass dies "out of the box" funktioniert, aber es sollte Ihnen eine gute Idee geben, wie Sie Ihre spezifischen Bedürfnisse umsetzen können.

    
Joshua Ulrich 25.08.2012 21:44
quelle
2

Das sieht vielversprechend aus: Ссылка

  

parsedate: Erkennen und Analysieren von Daten in verschiedenen Formaten, einschließlich aller   ISO 8601 Formate

     

Analysiert Datumsangaben automatisch, ohne dass ein Format angegeben werden muss.   Derzeit enthält es den Git-Parser. Es kann auch erkennen und   Parsen Sie alle ISO 8601-Formate.

    
Robert Levy 08.03.2015 18:27
quelle
-1
%Vor%

hat in den meisten Fällen gut genug für mich funktioniert. Es scheitert bereits in Sekundenbruchteilen und enthält keine Lösungen für alle Probleme, die Jon Hanna erwähnt hat. (Und die das Arbeiten mit Zeitdatentypen so unglaublich schwierig machen.)

    
quazgar 20.08.2013 13:15
quelle

Tags und Links