thanks very much Jeffrey and Stefan, this is just what I wanted. It's a neat answer (just a pity zoo doesn't provide some utility for this).
cheers Aidan On Mon, Feb 28, 2011 at 6:17 PM, Jeffrey Ryan <[email protected]> wrote: > Haven't checked the math per se, but this is probably what you want: > z <- zooreg(matrix(rnorm(18),nc=3), start=1995, freq=4) > z[index(z)==1996] > 1996(1) -1.274160 0.6255354 0.4150378 > t(t(z)/as.numeric(z[index(z)==1996])) > x.1 x.2 x.3 > 1995(1) 0.9233051 0.2428291171 0.1960831 > 1995(2) 0.6585486 1.2370305821 -0.7346616 > 1995(3) -0.6777132 0.0009999497 -2.6567196 > 1995(4) 0.3662096 1.3125214482 -0.6704602 > 1996(1) 1.0000000 1.0000000000 1.0000000 > 1996(2) -0.2993159 1.9259156026 1.5291669 > The trick is zoo (and xts) merge by time first before doing basic Ops. So > you are essentially left with only one row if you don't get rid of the > 'zoo'-ness of one of your objects. > All the t()'s are just to get things looking like they did at the beginning. > Best, > Jeff > > On Mon, Feb 28, 2011 at 11:36 AM, Aidan Corcoran > <[email protected]> wrote: >> >> Dear all, >> >> I was hoping someone could help me to generate an index based on data >> in zooreg format. The data are of the form >> >> > head(dq) >> sphsxs eunrfi irhont >> 1995(1) 670.8 82.9 NA >> 1995(2) 686.0 82.9 NA >> 1995(3) 682.6 83.0 NA >> 1995(4) 692.7 82.7 NA >> 1996(1) 686.0 81.5 33.6 >> 1996(2) 697.8 82.0 34.6 >> >> and I would like to index each of the three variables to 100 in >> 1996(1). I have made a few failed attempts based on extracting the >> values at that date >> >> > dq[index(dq)==1996.00] >> sphsxs eunrfi irhont >> 1996(1) 686 81.5 33.6 >> >> and then trying to divide the series by those values >> >> > dq/dq[index(dq)==1996.00] >> sphsxs eunrfi irhont >> 1996 1 1 1 >> >> but this results in a single row. One option might be to replicate the >> 1996 row using rep, but >> >> > rep(dq[index(dq)==1996.00],2) >> [1] 686.0 81.5 33.6 686.0 81.5 33.6 >> >> seems to repeat the data within a single vector, and I'm not sure how >> to get it to repeat the row down through a zoo object (and suspect >> there might be an easier way). >> >> Any help much appreciated. >> >> thanks >> Aidan >> >> _______________________________________________ >> [email protected] mailing list >> https://stat.ethz.ch/mailman/listinfo/r-sig-finance >> -- Subscriber-posting only. If you want to post, subscribe first. >> -- Also note that this is not the r-help list where general R questions >> should go. > > > > -- > Jeffrey Ryan > [email protected] > > www.lemnica.com > > _______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.
