为什么在一种情况下 as.Date return 不适用,而在另一种情况下 return 不适用?
Why does as.Date return NA in one case, and doesn't return in another?
我使用 R 版本 3.6.1
当我运行:
> as.Date('Dec 15, 2000', format = '%b %d, %Y')
我得到:
[1] "2000-12-15"
在另一台具有 相同 R 版本和库的机器上 我得到:
> as.Date('Dec 15, 2000', format = '%b %d, %Y')
[1] NA
日期字符串的解析取决于机器的语言设置。如果您想使用英文日期字符串,请将语言环境设置为(英国或美国)英语:
> Sys.setlocale("LC_ALL", 'en_GB.UTF-8')
[1] "LC_CTYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=en_GB.UTF-8;LC_COLLATE=en_GB.UTF-8;LC_MONETARY=en_GB.UTF-8;LC_MESSAGES=en_GB.UTF-8;LC_PAPER=es_ES.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=C"
> as.Date('Dec 15, 2000', format = '%b %d, %Y')
[1] "2000-12-15"
编辑
更具体地说,环境变量LC_TIME
是决定日期字符串解析行为的变量:
Sys.setlocale("LC_TIME", 'en_GB.UTF-8')
我使用 R 版本 3.6.1
当我运行:
> as.Date('Dec 15, 2000', format = '%b %d, %Y')
我得到:
[1] "2000-12-15"
在另一台具有 相同 R 版本和库的机器上 我得到:
> as.Date('Dec 15, 2000', format = '%b %d, %Y')
[1] NA
日期字符串的解析取决于机器的语言设置。如果您想使用英文日期字符串,请将语言环境设置为(英国或美国)英语:
> Sys.setlocale("LC_ALL", 'en_GB.UTF-8')
[1] "LC_CTYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=en_GB.UTF-8;LC_COLLATE=en_GB.UTF-8;LC_MONETARY=en_GB.UTF-8;LC_MESSAGES=en_GB.UTF-8;LC_PAPER=es_ES.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=C"
> as.Date('Dec 15, 2000', format = '%b %d, %Y')
[1] "2000-12-15"
编辑
更具体地说,环境变量LC_TIME
是决定日期字符串解析行为的变量:
Sys.setlocale("LC_TIME", 'en_GB.UTF-8')