r - 转换数据框中的混合日期格式

标签 r date-format

我已将数据提取到一个数据框中,其中包含需要合并的混合格式日期。数据帧结构如下:

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 <- 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

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

感谢任何帮助。

J.

最佳答案

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

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

关于r - 转换数据框中的混合日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903027/

相关文章:

R:每两个月休息一次的切割功能

如果多次出现,则重命名元素序列(R,dplyr)

ruby-on-rails - 将日期解析为 Rails 友好的格式

java - java中的DateFormat给出了意想不到的结果

java - JPA AttributeConverter 比较?

r - 错误: Found object is not a stat

r - 使用 RMarkdown 处理子目录

未从 Additional_repositories 安装 R 包依赖项

Java:获取时间间隔

java - 在 Java 中格式化日期需要帮助