如何将零值(0)值删除到r中有个位数的月份?

如何将零值(0)值删除到r中有个位数的月份?,r,date,time-series,date-format,lubridate,R,Date,Time Series,Date Format,Lubridate,我正在处理日期格式为YMD的时间序列数据,我想用一位数(1月至9月)将零值删除为月份。如何在r中删除它 这是我当前日期格式的一个示例:“2009-05-01”“2009-06-01”“2009-07-01”“2009-08-01”“2009-09-01”。我希望我的日期格式如下:“2009-5-01”“2009-6-01”“2009-7-01”“2009-8-01”“2009-9-01”。 如需通过r代码删除零值的任何帮助,请使用此正则表达式: x <- c("2009-05-0

我正在处理日期格式为YMD的时间序列数据,我想用一位数(1月至9月)将零值删除为月份。如何在r中删除它

这是我当前日期格式的一个示例:“2009-05-01”“2009-06-01”“2009-07-01”“2009-08-01”“2009-09-01”。我希望我的日期格式如下:“2009-5-01”“2009-6-01”“2009-7-01”“2009-8-01”“2009-9-01”。
如需通过r代码删除零值的任何帮助,请使用此正则表达式:

x <- c("2009-05-01", "2009-06-01", "2009-07-01", "2009-08-01", "2009-10-01")
sub('(\\d+-)0?(.*)', '\\1\\2', x)
#[1] "2009-5-01"  "2009-6-01"  "2009-7-01"  "2009-8-01"  "2009-10-01"

x您也可以将
lubridate
sprintf

library(lubridate)
x <- c("2009-05-01", "2009-06-01", "2009-07-1", "2009-08-01", "2009-1-01")
x <- ymd(x)
sprintf("%d-%d-%02d", year(x), month(x), day(x))
[1] "2009-5-01" "2009-6-01" "2009-7-01" "2009-8-01" "2009-1-01"