
[英]Getting an NA with abbreviated month format for as.Date in Spanish locale
[英]as.Date on abbreviated month (%b) with dot in Spanish locale
我对 R 和 Windows 中的短月份缩写有疑问。
我刚刚将我的 PC 更新到 Windows 10,Windows 的本地设置是西班牙语,但 R 用英语重新配置(我想)。
我有一些日期格式为*"%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")
我得到
“2018 年 1 月 1 日”*
(请注意短月份名称后有一个点)
我想删除ene 中的点。 因为我的日期是没有点的,所以现在处理的日期给了我NA 。
有点有趣的是,在我的代码中添加Sys.setlocale("LC_TIME","Spanish")
然后运行它,我得到的日期列很好。 但是如果我第二次运行它,我会得到NA
。 因此,如果我想再次运行代码以获取日期和报告(使用 R Markdown),我需要重新启动 R 而不会出错。
我应该使用什么配置? 或者这个问题有其他解决方案吗?
如果我写sessionInfo()
我得到:
语言环境:LC_COLLATE=Spanish_Chile.1252 LC_CTYPE=Spanish_Chile.1252 LC_MONETARY=Spanish_Chile.1252 LC_NUMERIC=C LC_TIME=Spanish_Spain.1252
谢谢!
我用替换解决了这个问题,找不到更好的解决方案,我很累
import locale
listaFechasTeorico2 = list()
locale.setlocale(locale.LC_TIME, "Spanish")
date.strftime('%b-%Y').replace(".","")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.