如何在R语言lubridate包中将日期显示从法语改为英文?
解决lubridate生成英文星期/月份标签问题
lubridate的wday()和month()函数生成的标签语言由系统当前的LC_TIME locale控制,你的系统默认是法语locale,所以标签显示为法语。以下是切换为英文的解决方案:
步骤1:设置英文locale
在调用日期函数前,根据你的操作系统设置对应的英文locale:
- Windows系统:
Sys.setlocale("LC_TIME", "English")
- Linux/macOS系统:
Sys.setlocale("LC_TIME", "en_US.UTF-8")
步骤2:运行原代码
设置完成后,执行你原来的代码即可生成英文缩写标签:
crime19clean$Day <- wday(crime19clean$Newdate, label = TRUE, abbr = TRUE) crime19clean$Month <- month(crime19clean$Newdate, label = TRUE, abbr = TRUE)
可选:恢复原locale
如果之后需要恢复系统原来的locale,可以先保存初始设置,操作完成后再恢复:
# 保存初始locale设置 original_locale <- Sys.getlocale("LC_TIME") # 设置英文locale Sys.setlocale("LC_TIME", "en_US.UTF-8") # 按系统调整 # 生成日期标签 crime19clean$Day <- wday(crime19clean$Newdate, label = TRUE, abbr = TRUE) crime19clean$Month <- month(crime19clean$Newdate, label = TRUE, abbr = TRUE) # 恢复原locale Sys.setlocale("LC_TIME", original_locale)
注意事项
如果设置locale时出现报错,大概率是你的系统未安装对应的英文locale:
- Linux系统可以通过
locale-gen en_US.UTF-8命令安装; - Windows和macOS一般自带英文locale,无需额外安装。
内容的提问来源于stack exchange,提问作者Crabe2
相关产品推荐
相关产品推荐

