Пожалуйста, примите во внимание следующее
$ R --vanilla
> as.Date("01 Jan 2000")
Error in charToDate(x) :
character string is not in a standard unambiguous format
Но эта дата явно находится в стандартном однозначном формате. Почему появляется сообщение об ошибке?
Хуже того, двусмысленная дата, по-видимому, принимается без предупреждений или ошибок, а затем читается неправильно!
> as.Date("01/01/2000")
[1] "0001-01-20"
Я просмотрел и нашел еще 28 вопросов в теге [R], содержащем это сообщение об ошибке. Все с решениями и обходными путями, включая указание формата, iiuc. Этот вопрос отличается тем, что я спрашиваю, где в любом случае определены стандартные однозначные форматы и можно ли их изменить? Все получают эти сообщения или это только я? Возможно, это связано с локалью?
Другими словами, есть ли лучшее решение, чем необходимость указывать формат?
29 вопросов, содержащих «стандартный однозначный формат [R]»
> 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.character
, ввод проверяется только для этих двух форматов:"%Y-%m-%d"
и"%Y/%m/%d"
. Если он может совпадать с одним из них, это будет считаться однозначным. - person plannapus   schedule 07.02.2013?as.Date
. Где это помогает? - person Matt Dowle   schedule 07.02.2013strptime(xx, f <- "%d $B %Y", tz = "GMT")
илиstrptime(xx, f <- "%B $d %Y", tz = "GMT")
возвращаемые значения. (Я не имею в виду, чтоmonth.abb
используется для сопоставления с% B, поскольку в документации указано, что сопоставление зависит от локали.) - person IRTFM   schedule 07.02.2013