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

R语言中如何为%m-%Y格式的日期月份添加前导零

错误原因

as.Date()要求输入的日期包含完整的年、月、日三个维度,你提供的字符串只有月和年,R无法解析为合法的日期对象,因此全部返回NA。

解决方案

方法1:基础R正则处理(无需安装额外包)

直接用正则匹配单数字开头的月份,在前面补上前导零即可:

data = c("2-2021", "8-2020", "11-2020", "11-2020", "7-2021", "12-2020", 
         "2-2021", "5-2021", "11-2020", "11-2020")
result <- sub("^(\\d)-", "0\\1-", data)

运行后result就是你需要的输出:

c("02-2021", "08-2020", "11-2020", "11-2020", "07-2021", "12-2020", 
  "02-2021", "05-2021", "11-2020", "11-2020")

方法2:使用lubridate日期处理包(适合后续还要做日期运算的场景)

先将字符串解析为年月类型,再按指定格式输出即可:

# 未安装的话先运行 install.packages("lubridate")
library(lubridate)
result <- format(my(data), "%m-%Y")

得到的结果和上面完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:00:00