user3634755
user3634755

Reputation: 359

removing date from %d/%m/%Y %H:%M in R

The r code that I am working on is supposed to use the data collected in every five minute intervals. The data is saved in csv format. However, due to inconsistency in the data collected, the time column in the data sometimes represent timestamp instead of just time.(dd/mm/yyyy HH:MM, instead of HH:MM)

This causes an error to my system as the system reads the data as having multiple different values for the same time value. Therefore, I would like to omit the date format from the timestamp such that the code would only read the time value.

My failed attempt was: as.Date(data[[1]],"%H:%M") which gave me all NA values for the time column.

I have searched for similar questions in SO, but I did not manage to find a clear answer to my question. Can anyone suggest me some possible functions to use?

I appreciate your help.

Upvotes: 0

Views: 213

Answers (1)

thelatemail
thelatemail

Reputation: 93813

You could just strip the date portion of the text and then use as.POSIXct to convert them all to a %H:%M timestamp, e.g.:

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"

Upvotes: 3

Related Questions