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 ? Thanks, Simon -- View this message in context: http://r.789695.n4.nabble.com/Extract-time-only-from-POSIXlt-object-tp3246751p3246751.html Sent from the R help mailing list archive at Nabble.com.
On Jan 29, 2011, at 7:45 PM, Simon Goodman 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 > ?> ptime <- as.POSIXlt("2010-10-18 21:46:53") > ptime [1] "2010-10-18 21:46:53" > format(ptime, format="%H:%M:%S") [1] "21:46:53" This is a character value, no longer a time. -- David Winsemius, MD West Hartford, CT
Try
tt <- as.POSIXct("2011-01-29 15:00")
tt-trunc(tt,"days")
Note that this result can be used to add or subtract from datetime values, but I
don't know of a convenient way to represent it as HH:MM:SS format.
"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
>?
>
>Thanks, Simon
>
>--
>View this message in context:
>http://r.789695.n4.nabble.com/Extract-time-only-from-POSIXlt-object-tp3246751p3246751.html
>Sent from the R help mailing list archive at Nabble.com.
>
>______________________________________________
>R-help at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide
>http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.
---------------------------------------------------------------------------
Jeff Newmiller The ..... ..... Go Live...
DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live
Go...
Live: OO#.. Dead: OO#.. Playing
Research Engineer (Solar/Batteries O.O#. #.O#. with
/Software/Embedded Controllers) .OO#. .OO#. rocks...1k
---------------------------------------------------------------------------
Sent from my phone. Please excuse my brevity.
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
Those are all really helpful responses. Got it sorted now. Many thanks indeed! -- View this message in context: http://r.789695.n4.nabble.com/Extract-time-only-from-POSIXlt-object-tp3246751p3247105.html Sent from the R help mailing list archive at Nabble.com.