You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何将“月-年”格式字符串转换为日期格式

问题原因
  • as.Date()生成标准日期格式需要日维度的信息,仅提供年月时函数无法自动补全,会直接返回NA
  • 若R运行在中文locale环境下,格式符%b默认匹配中文月份缩写,无法识别Sep/Oct这类英文月份缩写,也会触发转换失败
解决方案

基础R包实现

# Windows系统设置英文locale,macOS请替换为 "en_US.UTF-8"
Sys.setlocale("LC_TIME", "English")
# 补全当月1日的信息后转标准日期
std_date <- as.Date(paste0("01-", Dates), format = "%d-%b-%Y")
# 转换为"09-2016"格式的字符串
formatted_date <- format(std_date, "%m-%Y")
# 切回中文locale(可选)
Sys.setlocale("LC_TIME", "Chinese")

lubridate包实现(更简便,无需调整locale)

# 未安装包先运行 install.packages("lubridate")
library(lubridate)
# 直接解析月-年格式字符,自动补全为当月1日
std_date <- my(Dates)
# 转换为指定格式字符串
formatted_date <- format(std_date, "%m-%Y")
转换效果示例

输入示例:"Sep-2016" "Oct-2016" "Nov-2016"

  • 标准日期输出:2016-09-01 2016-10-01 2016-11-01
  • 自定义格式输出:"09-2016" "10-2016" "11-2016"

内容的提问来源于stack exchange,提问作者haroldchoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 05:24:01