Or even: with(x, a / coredata(a[1]) )
On Sun, May 16, 2010 at 7:48 PM, Gabor Grothendieck <ggrothendi...@gmail.com> wrote: > Normally that would be written like this using the coredata extraction > function which extracts the data portion of a zoo object: > > x$a / coredata( x$a[1] ) > > On Sun, May 16, 2010 at 7:32 PM, Sean Carmody <seancarm...@gmail.com> wrote: >> Thanks David, >> >> You comment made me realise that whereas when x is a data frame, x$a is a >> numeric vector, >> when x is of class zoo, x$a is also of class zoo, so the following does what >> I was expecting: >> >> x$a/as.numeric(x$a[1]) >> >> Sean. >> >> On Sun, May 16, 2010 at 9:25 PM, David Winsemius >> <dwinsem...@comcast.net>wrote: >> >>> >>> On May 16, 2010, at 2:00 AM, Sean Carmody wrote: >>> >>> I am a bit confused about the different approaches taken to recycling in >>>> plain data frames and zoo objects. When carrying out simple arithmetic, >>>> dataframe seem to recycle single arguments, zoo objects do not. Here is an >>>> example >>>> >>>> x <- data.frame(a=1:5*2, b=1:5*3) >>>>> x >>>>> >>>> a b >>>> 1 2 3 >>>> 2 4 6 >>>> 3 6 9 >>>> 4 8 12 >>>> 5 10 15 >>>> >>>>> x$a/x$a[1] >>>>> >>>> [1] 1 2 3 4 5 >>>> >>>>> x <- zoo(x) >>>>> x$a/x$a[1] >>>>> >>>> 1 >>>> 1 >>>> >>>>> >>>>> >>>> I feel understanding this difference would lead me to a greater >>>> understanding of the zoo module! >>>> >>> >>> I think you do have misunderstandings about the zoo package but I do not >>> think it is in the area of vector recycling. Notice the effect of your >>> application of the zoo function to x: >>> >>> > x$a >>> >>> 1 2 3 4 5 >>> 2 4 6 8 10 >>> > x$a[1] >>> 1 >>> 2 >>> >>> You have in effect transposed the elements in x and are now getting a two >>> element column vector when requesting x$a[1]. The term vector recycling is >>> applied to situations where short vectors are reused starting with their >>> first elements until the necessary length is achieved. For instance if you >>> request: >>> >>> > data.frame(x=1:2, y=letters[1:10]) >>> x y >>> 1 1 a >>> 2 2 b >>> 3 1 c >>> 4 2 d >>> 5 1 e >>> 6 2 f >>> 7 1 g >>> 8 2 h >>> 9 1 i >>> 10 2 j >>> >>> Or plot(1:10, col=c("red","green")) >>> >>> >>>> Sean. >>>> >>>> -- >>>> Sean Carmody >>>> >>> >>> >>> >> >> >> -- >> Sean Carmody >> Twitter: http://twitter.com/seancarmody >> Stable: http://mulestable.net/sean >> >> The Stubborn Mule >> Blog: http://www.stubbornmule.net >> Forum: http://mulestable.net/ >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@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. >> > ______________________________________________ R-help@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.