我在Windows中遇到R和短个月缩写的问题。
我刚刚将PC更新到Windows 10,Windows的本地设置为西班牙语,但是R重新配置为英语(我想)。
我有一些数据,其中Date的格式为*"%b %d, %Y"*
并且是西班牙语,因此,如果日期为January 1st 2018
,它将被写为***ene 1, 2018***
。
在更新Windows之前,将日期设置为以下没有任何问题:
as.Date("ene 1, 2018", format = "%b %d, %Y")
这又返回了
“ 2018-01-01”
符合预期。
更新后,我在读取这种日期格式时遇到了问题,因此如果查看sessionInfo()
,它会显示LC_TIME = C。我使用Sys.setlocale("LC_TIME","Spanish")
现在,如果我写format(as.Date('2018-01-01'), "%b %d, %Y")
我会得到
“ ene。01,2018” *
(请注意,短月份的名称后面有一个点)
我想删除 ene中的点。,因为我的日期写成没有点,所以现在处理的日期给了我 NA 。
有点可笑的是,在我的代码中添加Sys.setlocale("LC_TIME","Spanish")
然后运行它,我得到的日期栏很好。但是,如果我第二次运行它,则会得到NA
。因此,如果我想第二次运行代码以获取日期和报告(使用R Markdown)而没有错误,则需要重新启动R。
我应该使用什么配置?还是有解决此问题的另一种方法?
如果我写sessionInfo()
,我会得到:
语言环境:LC_COLLATE = Spanish_Chile.1252 LC_CTYPE = Spanish_Chile.1252 LC_MONETARY =西班牙语_智利.1252 LC_NUMERIC = C LC_TIME =西班牙语_西班牙.1252
谢谢!