Veuillez considérer les points suivants
$ R --vanilla
> as.Date("01 Jan 2000")
Error in charToDate(x) :
character string is not in a standard unambiguous format
Mais cette date est clairement es dans un format standard sans ambiguïté. Pourquoi ce message d'erreur ?
Pire encore, une date ambiguë est apparemment acceptée sans avertissement ni erreur et est ensuite lue de manière incorrecte !
> as.Date("01/01/2000")
[1] "0001-01-20"
J'ai cherché et trouvé 28 autres questions dans la balise [R] contenant ce message d'erreur. Toutes avec des solutions et des solutions de contournement impliquant la spécification du format, iiuc. Cette question est différente dans la mesure où je demande où sont définis les formats standard non ambigus et s'ils peuvent être modifiés. Tout le monde reçoit-il ces messages ou est-ce seulement moi ? Peut-être est-ce lié aux paramètres locaux ?
En d'autres termes, existe-t-il une meilleure solution que de devoir spécifier le format ?
29 questions contenant "[R] format standard sans ambiguïté".
> 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
13 votes
À en juger par la définition de la fonction de
as.Date.character
l'entrée n'est testée que pour ces deux formats :"%Y-%m-%d"
y"%Y/%m/%d"
. S'il peut correspondre à l'un d'entre eux, il semble être considéré comme "sans ambiguïté".7 votes
@CarlWitthoft "Ai-je seulement lu" semble impliquer que la réponse est d'une évidence aveuglante dans
?as.Date
. En quoi cela aide-t-il ?0 votes
@plannapus Merci, cela semble être la réponse. Pourriez-vous l'ajouter afin que je puisse l'accepter.
2 votes
On peut soutenir que "Jan 24 1949" et "24 Jan 1949" ne seraient pas ambigus, mais ils sont certainement anglo-centriques. Pourtant, il existe également des valeurs pour "month.abb" qui sont également anglo-centriques, et on pourrait donc justifier la correspondance de ces valeurs dans les cas où :
strptime(xx, f <- "%d $B %Y", tz = "GMT")
ostrptime(xx, f <- "%B $d %Y", tz = "GMT")
les valeurs retournées. (Je ne veux pas dire quemonth.abb
est utilisé pour la correspondance avec %B puisque les docs disent que la correspondance est spécifique à la locale).6 votes
CarlWitthoft Certains d'entre nous trébuchent de temps en temps. Merci pour le coup de pied pendant que je suis à terre. Dans cette question, j'ai réussi à faire pas mal de choses : j'ai inclus sessionInfo(), j'ai fait une recherche, je vous ai dit ce que j'ai cherché et j'ai inclus un lien, j'ai été aussi concis que possible. J'ai manqué une ligne dans ?as.Date et vous m'avez donné le traitement TFM. Nous ne pouvons pas tous être aussi parfaits que vous tout le temps.
1 votes
MatthewDowle, désolé si j'y suis allé fort. Je pense que la flamme a commencé lorsque vous avez semblé confondre "non ambiguë pour un humain raisonnablement bien éduqué" avec "non ambiguë pour un pauvre morceau de code sans défense". :-(