【问题标题】:convert mixed date formats in a data frame [duplicate]转换数据框中的混合日期格式[重复]
【发布时间】:2012-01-17 23:14:04
【问题描述】:

我已将数据提取到需要合并的混合格式日期的数据框中。数据框结构如下:

dateDF <- structure(list(id = 1:7, value = c(5813L, 8706L, 4049L, 5877L, 
1375L, 2223L, 3423L), date = structure(c(4L, 3L, 2L, 1L, 7L, 
6L, 5L), .Label = c("??:?? 05-Dec-11", "??:?? 06-Dec-11", "??:?? 07-Dec-11", 
"??:?? 19-Dec-11", "30/12/2011 16:00", "30/12/2011 16:45", "31/12/2011 19:10"
), class = "factor")), .Names = c("id", "value", "date"), row.names = c(NA, 
-7L), class = "data.frame")

我用dateDF$date &lt;- str_replace(string=dateDF$date, pattern='\\?\\?\\:\\?\\? ', '12:00 ')制作:

id  value   date
1   5813    12:00 19-Dec-11
2   8706    12:00 07-Dec-11
3   4049    12:00 06-Dec-11
4   5877    12:00 05-Dec-11
5   1375    31/12/2011 19:10
6   2223    30/12/2011 16:45
7   3423    30/12/2011 16:00

对于列中存在第一种格式的每种情况,我现在需要将格式为 hh:mm dd-mmm-yy 的前 4 个样式日期转换为与后三个日期格式 dd/mm/yyyy hh:mm 一致的格式。

感谢任何帮助。

J.

【问题讨论】:

    标签: r date-format


    【解决方案1】:

    如果你知道你只有这两种格式,你可以先识别它们(第一种有字母字符,另一种没有)并进行相应的转换。

    dateDF$date <- as.POSIXlt( 
      dateDF$date, 
      format = ifelse( 
        grepl("[a-z]", d$date), 
        "%H:%M %d-%b-%y", 
        "%d/%m/%Y %H:%M" 
      ) 
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 2012-09-29
      • 1970-01-01
      相关资源
      最近更新 更多