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
[[alternative HTML version deleted]]
_______________________________________________
[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.