R base не может разобрать стандартный заявленный формат времени - PullRequest
2 голосов
/ 06 января 2020

Это:

base::as.Date("07 Mar 2025", tryFormats ="%d %b %Y")

возвращает:

Error in charToDate(x) : 
  character string is not in a standard unambiguous format

Я использую R 3.6.2 и sessioninfo возвращает:

Продукты матрицы: по умолчанию BLAS: / usr / lib / x86_64- linux -gnu / atlas / libblas.so.3.10.3 LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=de_BE.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=de_BE.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=de_BE.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=de_BE.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.6.2

1 Ответ

1 голос
/ 06 января 2020

Это из-за вашей локали, сокращения месяца отличаются.

В моей локали в Великобритании:

Sys.getlocale("LC_TIME")
[1] "English_United Kingdom.1252"
base::as.Date("07 Mar 2025", tryFormats ="%d %b %Y")
[1] "2025-03-07"

В немецкоязычной бельгийской локали:

Sys.setlocale("LC_TIME","German_Belgium.1252")
[1] "German_Belgium.1252"
base::as.Date("07 Mar 2025", tryFormats ="%d %b %Y")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

base::as.Date("07 Mrz 2025", tryFormats ="%d %b %Y")
[1] "2025-03-07"
base::as.Date("07 März 2025", tryFormats ="%d %b %Y")
[1] "2025-03-07"

Вы можете попробовать переключиться на локаль Engli sh, чтобы интерпретировать данные, используя Sys.setlocale. Обратите внимание, что 1252 из них Windows -specifi c, вам, вероятно, потребуется использовать что-то вроде en_GB.UTF-8 в Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...