On Fri, Mar 30, 2012 at 2:53 PM, Joshua Ulrich <josh.m.ulrich@gmail.com>wrote:

> On Thu, Mar 29, 2012 at 3:56 PM, Worik R <worikr@gmail.com> wrote:
>
>

> I removed the (not so minimal) reproducible example because you can
> get the same behavior via:
> > (s <- Sys.time())
> [1] "2012-03-29 20:43:35 CDT"
> > as.POSIXct(as.numeric(s),origin="1970-01-01")
> [1] "2012-03-30 02:43:35 CDT"
>
> sapply() attempts to simplify to an array.  Arrays can only contain an
> atomic type.  POSIXct is not an atomic type, so it gets converted to
> numeric.
>
> The way to get around this is to explicitly set the timezone in your R
> session (see ?timezone).  I can do this on my Ubuntu machine via:
> > Sys.setenv(TZ="GMT")
>
> Now if I run the code above again, there is no difference after
> converting from POSIXct -> numeric -> POSIXct:
> > (s <- Sys.time())
> [1] "2012-03-30 01:45:36 GMT"
> > as.POSIXct(as.numeric(s),origin="1970-01-01")
> [1] "2012-03-30 01:45:36 GMT"
>
> HTH,
>

Bingo!  Thaks heaps. I have been working on this and had got as far as
realising it was the conversion to numeric.  I was trying to set the time
zone in the as.POSIXct call but to no avail.  But this looks good.

cheers
W


> --
> Joshua Ulrich  |  FOSS Trading: www.fosstrading.com
>
> R/Finance 2012: Applied Finance with R
> www.RinFinance.com
>

	[[alternative HTML version deleted]]

