【问题标题】:How to convert dd/mm/yy to yyyy-mm-dd in R如何在 R 中将 dd/mm/yy 转换为 yyyy-mm-dd
【发布时间】:2016-07-01 13:02:29
【问题描述】:

我有一个带有日期值的向量,格式为 dd/mm/yy,例如(27/06/16)。 我想将此格式转换为 yyyy-mm-dd 例如(2016-06-27)以进行逻辑比较。我正在使用这个表达式:

as.Date(as.character("27/06/16"), format = "%d")

输出如下:

"2016-07-27"

如何将其转换为所需的格式。

【问题讨论】:

  • as.Date(as.character("27/06/16"), format = "%d/%m/%y")
  • 格式见?strptime
  • @Sumedh 谢谢它的工作。
  • @Vaibhav 您想要的输出格式称为 ISO 8601,这将有助于您在未来寻求有关日期的帮助。

标签: r


【解决方案1】:

使用lubridate包

library(lubridate)
dmy("27/06/16")

【讨论】:

    【解决方案2】:

    带基R

    as.Date(as.character("27/06/16"), format = "%d/%m/%y")
    

    【讨论】:

      【解决方案3】:

      一种选择是将两种日期格式转换为通用的 POSIX 表示:

      d1 <- strptime("27/06/16", "%d/%m/%y")
      d2 <- strptime("2016-06-27", "%Y-%m-%d")
      

      由于d1 和d2 应该属于同一个 R 类,因此您可以随意比较它们。

      【讨论】:

        【解决方案4】:

        使用 dplyr

        df.with.converted.date <- df.with.original.date %>%
          mutate(new.date.var = as.character(as.Date(old.date.var, "%m/%d/%Y"),"%Y%m%d"))
        

        例如,这会将"5/3/2019" 转换为20190503

        【讨论】:

          【解决方案5】:
          strDates <- c("27/06/16")
          dates <- as.Date(strDates, "%m/%d/%Y")
          

          这行得通。

          更多信息请参考这里。http://www.statmethods.net/input/dates.html

          【讨论】:

          • 这与@J_F 的答案基本相同,他在大约 5 分钟前发布......
          【解决方案6】:

          试试

          as.Date( as.character("27/06/16"), format = "%Y-%m-%d")
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-10-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-26
            • 1970-01-01
            相关资源
            最近更新 更多