我已将数据提取到需要合并的混合格式日期的数据框中。数据框的结构如下:
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")
Run Code Online (Sandbox Code Playgroud)
我曾经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
Run Code Online (Sandbox Code Playgroud)
对于列中存在第一种hh:mm dd-mmm-yy格式dd/mm/yyyy hh:mm的每种情况,我现在需要将带有格式的前 4 个样式日期转换为与后三个日期格式一致的格式。
任何帮助表示赞赏。
J。
如果你知道你只有这两种格式,你可以先识别它们(第一个有字母字符,另一个没有)并相应地转换。
dateDF$date <- as.POSIXlt(
dateDF$date,
format = ifelse(
grepl("[a-z]", d$date),
"%H:%M %d-%b-%y",
"%d/%m/%Y %H:%M"
)
)
Run Code Online (Sandbox Code Playgroud)