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

______________________________________________
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.

Reply via email to