[R-SIG-Finance] Discretising intra-day data using zoo?
Gabor Grothendieck
ggrothendieck at gmail.com
Sun Nov 8 13:20:02 CET 2009
See the aggregate.zoo example in vignette("zoo-quickref") but round up
to the next 4 seconds instead of next Friday:
> to4sec <- function(x) as.POSIXct(4*ceiling(as.numeric(x)/4), origin = "1970-01-01")
> aggregate(demo, to4sec, tail, 1)
spread ltp
2009-02-16 05:00:04 0.0050 48.715
2009-02-16 05:00:08 0.0025 48.715
2009-02-16 05:00:12 0.0025 48.715
2009-02-16 05:00:16 0.0025 48.715
On Sun, Nov 8, 2009 at 2:10 AM, Ajay Shah <ajayshah at mayin.org> wrote:
> Folks,
>
> I have a zoo object where the time-stamps are intra-day with
> sub-second resolution. Can you take a look:
>
> library(zoo)
> print(load(url("http://www.mayin.org/ajayshah/tmp/demo.rda")))
> options("digits.secs"=6)
> head(demo)
> tail(demo)
>
> My question is: How do I force this down to a uniform grid of (say)
> four second resolution. In that case, we'd have readings for
>
> 10:30:00
> 10:30:04
> 10:30:08
> 10:30:12
>
> out of this dataset. As with the standard
> zoo::aggregate(blah, tail, 1)
> we'd take the last available record as of 10:30:08 and put this
> information for that timepoint.
>
> Suppose there is not a single record in the raw data from 10:30:04 to
> 10:30:09. Despite this, the resulting object should contain a record
> for 10:30:08 with NA values (which can then be filled out e.g. using
> na.locf()). How would we do this? This problem is not present in this
> data, where records are plentiful. But discretisation code should be
> general and handle this case right.
>
> --
> Ajay Shah http://www.mayin.org/ajayshah
> ajayshah at mayin.org http://ajayshahblog.blogspot.com
> <*(:-? - wizard who doesn't know the answer.
>
> _______________________________________________
> R-SIG-Finance at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
> -- Subscriber-posting only.
> -- If you want to post, subscribe first.
>
More information about the R-SIG-Finance
mailing list