r-将日期格式从YYYY-MM转换为--MMMYYYY:2018-02转换为--FEB2018



我想将字符类型的日期(2018-05-25、2018-03等(转换为2018年5月25日,--2018年3月(缺少的日期应替换为"--"(例如--2018年10月(

Unique ID      A (Character format)          B (Required result - it should be in uppercase)
1            2018-05-25                  25MAY2018
2            2018-04                     --APR2018
3            2018-03-28                  28MAR2018
4            2018-05                     --APR2018
5            2018-05-25                  25MAY2018

我们可以通过将日期分为两部分来解决这个问题。第一部分是有日期部分的日期,第二部分没有日期部分。

x <- c('2018-05-25', '2018-04', '2018-03-28', '2018-05', '2018-05-25')
dates <- as.Date(x)
new_dates <- toupper(format(dates, '%d%b%Y'))
new_dates[is.na(new_dates)] <- toupper(format(as.Date(paste0(x[is.na(dates)], 
'-01')), '--%b%Y'))
new_dates
#[1] "25MAY2018" "--APR2018" "28MAR2018" "--MAY2018" "25MAY2018"

最新更新