【问题标题】:How to Invert date format如何反转日期格式
【发布时间】:2021-12-30 12:35:53
【问题描述】:

我有一个大型数据库,其中一列包含以下格式的日期:DD-MM-YYYY。 我想将日期格式反转为:YYYY-MM-DD。 有人可以告诉我如何使用 bash OR R 来做到这一点吗?

【问题讨论】:

标签: r database bash


【解决方案1】:

一个可能的解决方案:

library(tidyverse)
library(lubridate)

df <- data.frame(date=c("11-4-2021","5-6-2019"))

df %>% 
  mutate(date2 = dmy(date) %>% ymd)

#>        date      date2
#> 1 11-4-2021 2021-04-11
#> 2  5-6-2019 2019-06-05

【讨论】:

    【解决方案2】:

    在 bash 中,我们可以使用字符串操作:

    dmy=30-12-2021
    echo "${dmy:6:4}-${dmy:3:2}-${dmy:0:2}"    # 2021-12-30
    

    read:

    IFS="-" read -r d m y <<<"$dmy"
    echo "$y-$m-$d"
    

    【讨论】:

      【解决方案3】:

      我用 R 来解决我的问题:

      df > data.frame 列“eventDate”上的日期。日期格式为 DD-MM-YYYY。有几个单元格的日期不完整(例如 MM-YYYY 或 YYYY)。

      library(tidyr)
      x <- separate(df, col = eventDate, into = c("day", "month", "year"), sep="-")
      y <- x %>% unite("eventDate_2", year:month:day, remove=TRUE, sep="-", na.rm= TRUE)
      y <- cbind(y, df$eventDate) # add the original column for comparing if it had worked and correct individual errors.
      

      【讨论】:

        【解决方案4】:
        echo "${dmy:6:4}-${dmy:3:2}-${dmy:0:2}"
        

        【讨论】:

        • 那是 Python 吗?问题是关于 R 或 bash
        猜你喜欢
        • 2010-12-17
        • 1970-01-01
        • 2014-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-03
        相关资源
        最近更新 更多