【问题标题】:Convert date format from YYYY-MM to --MMMYYYY: 2018-02 to --FEB2018 [duplicate]将日期格式从 YYYY-MM 转换为 --MMMYYYY:2018-02 到 --FEB2018 [重复]
【发布时间】:2020-07-13 07:46:42
【问题描述】:

我想将 char 类型的日期(2018-05-25、2018-03 等)转换为 25May2018、--Mar2018(缺少的日期应替换为“--”(例如--Mar2018)

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

【问题讨论】:

  • 你试过lubridate吗?
  • 你为什么要这样做?
  • @RonakShah,我需要创建一个具有上述条件的变量
  • 是的,但是为什么呢?你打算在哪里使用它?只是为了展示目的吗?
  • 条件就是这样,所以我需要创建它....是的,它仅用于显示目的

标签: r date


【解决方案1】:

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

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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 2016-11-25
    • 2017-06-24
    • 2013-10-27
    • 2020-11-10
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多