这与我之前的问题regex to add hypen in dates相关联。
我现在希望能够删除秒和毫秒/再次使用gsub将其更改为零
即。类似的东西:
x <- c("20130603 00:00:03.102","20130703 00:01:03.103","20130804 00:03:03.104")
y <- gsub([REGEX PATTERN TO MATCH],[REPLACEMENT PATTERN TO INSERT HYPHEN and REMOVE SECONDS] ,x)
> y
[1] "2013-06-03 00:00:00" "2013-07-03 00:01:00" "2013-08-04 00:03:00"
答案 0 :(得分:3)
您可以使用strptime
将对象解析为POSIXlt
个对象,这些对象在打印时完全采用您期望的格式:
y <- strptime(x, "%Y%m%d %H:%M:%S")
# [1] "2013-06-03 00:00:03" "2013-07-03 00:01:03" "2013-08-04 00:03:03"
要删除秒数,请使用trunc
:
y <- trunc(y, units = "mins")
# [1] "2013-06-03 00:00:00" "2013-07-03 00:01:00" "2013-08-04 00:03:00"
将对象作为日期/时间对象将打开很多门,但如果您真的想将输出存储为字符向量,那么只需使用as.character
:
y <- as.character(y)
答案 1 :(得分:2)
lubridate
版本:
library(lubridate)
dt <- ymd_hms(x)
dt2 <- update(dt, seconds = 0)
答案 2 :(得分:1)
你可以尝试这个正则表达式,我添加了一点:
gsub("(\\d{4})(\\d{2})(\\d{2}) (\\d{2}:\\d{2}).*", "\\1-\\2-\\3 \\4:00", subject, perl=TRUE);