Tutorial :Using sapply on vector of POSIXct



Question:

I have what may be a very simple question. I want to process a column of POSIXct objects from a dataframe and generate a vector of datetime strings. I tried to use the following sapply call

dt <- sapply(df$datetime, function(x) format(x,"%Y-%m-%dT%H:%M:%S"))  

but to no avail. I keep getting the following error:

> Error in prettyNum(.Internal(format(x, trim, digits, nsmall, width, 3L,  :  invalid 'trim' argument  

When I apply this function to a single POSIXct object from the column, I have no problem. So I'm stumped at the moment about what the problem is. Do I need to do something special with POSIXct objects?


Solution:1

format() will take a vector argument, so format(df$datetime,"%Y-%m-%dT%H:%M:%S") should do what you need.

When you use sapply, your objects are coerced to numeric, and so the wrong format method is being invoked. You could coerce them back to POSIXct by using sapply(df$datetime, function(x) format(as.POSIXct(x, origin="1970-01-01"),"%Y-%m-%dT%H:%M:%S")), but unless you have a special reason to use apply, just use the method above


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »