Extract time only from POSIXlt object
On Sat, Jan 29, 2011 at 7:45 PM, Simon Goodman <s.j.goodman at leeds.ac.uk> wrote:
How can I extract only the time component from an POSIXlt object? For example if I try the following it still returns both the date and time...
as.POSIXlt(tr.date[1])
[1] "2010-10-18 21:46:53"
as.POSIXlt(tr.date[1],"%H:%M:%S")
[1] "2010-10-18 21:46:53" round and trunc don't help... ?is there an "as.Time" equivalent to as.Date ?
If you are looking for a class that represents time of day, the "times" class in the chron package can do that:
lt <- as.POSIXlt("2010-10-18 21:46:53")
library(chron)
tt1 <- times(format(lt, "%H:%M:%S")); tt1
[1] 21:46:53 or
tt2 <- unname(as.chron(lt) - dates(as.chron(lt))); tt2
[1] 21:46:53 Now tt1 and tt2 are "times" objects and can be manipulated:
tt1 + 1/24 # add an hour
[1] 22:46:53 Although not specifically about times you might wish to read R News 4/1 which gives a bit of detail on chron and further references.
Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com