从%d /%m /%Y%H中删除日期:R中的%M

时间:2014-06-02 01:43:04

标签: r date

我正在处理的r代码应该使用每隔五分钟收集一次的数据。 数据以csv格式保存。但是,由于收集的数据不一致,数据中的时间列有时代表时间戳而不仅仅是时间。(dd / mm / yyyy HH:MM,而不是HH:MM)

这会导致系统出错,因为系统会将数据读取为具有相同时间值的多个不同值。因此,我想从时间戳中省略日期格式,以便代码只读取时间值。

我失败的尝试是: as.Date(数据[[1]], “%H:%M”) 它给了我时间列的所有NA值。

我在SO中搜索过类似的问题,但我无法找到问题的明确答案。任何人都可以建议我使用一些可能的功能吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以删除文本的日期部分,然后使用as.POSIXct将它们全部转换为%H:%M时间戳,例如:

x <- c("10:25","01/01/2014 10:30")

x <- gsub("^.+(\\d{2}:\\d{2})$","\\1",x)

as.POSIXct(x,format="%H:%M",tz="UTC")
#[1] "2014-06-02 10:25:00 UTC" "2014-06-02 10:30:00 UTC"