Bitte beachten Sie Folgendes
$ R --vanilla
> as.Date("01 Jan 2000")
Error in charToDate(x) :
character string is not in a standard unambiguous format
Aber zu diesem Zeitpunkt klar ist in einem Standard - Format eindeutig. Warum die Fehlermeldung?
Schlimmer noch, ein mehrdeutiges Datum wird anscheinend ohne Vorwarnung oder Fehler akzeptiert und dann falsch gelesen!
> as.Date("01/01/2000")
[1] "0001-01-20"
Ich habe 28 andere Fragen im [R] -Tag gesucht und gefunden, die diese Fehlermeldung enthalten. Alle mit Lösungen und Problemumgehungen, bei denen das Format angegeben wird, iiuc. Diese Frage unterscheidet sich darin, dass ich frage, wo die standardmäßigen eindeutigen Formate überhaupt definiert sind und ob sie geändert werden können. Bekommt jeder diese Nachrichten oder bin es nur ich? Vielleicht hängt es mit dem Gebietsschema zusammen?
Mit anderen Worten, gibt es eine bessere Lösung, als das Format angeben zu müssen?
29 Fragen mit "[R] Standard eindeutiges Format"
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United Kingdom.1252
[2] LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
?as.Date
. Wo hilft es dabei?
strptime(xx, f <- "%d $B %Y", tz = "GMT")
oder strptime(xx, f <- "%B $d %Y", tz = "GMT")
Werte zurückgegeben werden. (Ich impliziere nicht, dass dies month.abb
für das Matching mit% B verwendet wird, da die Dokumente sagen, dass das Matching länderspezifisch ist.)
as.Date.character
der Eingabe zu urteilen, wird nur für diese beiden Formate getestet:"%Y-%m-%d"
und"%Y/%m/%d"
. Wenn es mit einem von ihnen übereinstimmen kann, scheint es als "eindeutig" zu gelten.