Recycling
When applying an operation to two vectors that requires them to be the same length, R automatically recycles, or repeats, the shorter one, until it is long enough to match the longer one. Here is an example:
> c(1,2,4) + c(6,0,9,20,22) [1] 7 2 13 21 24 Warning message: longer object length is not a multiple of shorter object length in: c(1, 2, 4) + c(6, 0, 9, 20, 22)
The shorter vector was recycled, so the operation was taken to be as follows:
> c(1,2,4,1,2) + c(6,0,9,20,22)
Here’s a more subtle example:
> x [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 > x+c(1,2) [,1] [,2] [1,] 2 6 [2,] 4 6 [3,] 4 8
Again, keep in mind that matrices are actually long vectors. Here, x
, as a 3-by-2 matrix, is also a six-element vector, which in R is stored column ...
Get The Art of R Programming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.