What is Vector Recycling in R ?
Operations on vectors need to happen on vectors of the same size. Say, you add
> cats
John Ajay Aishu
1 2 1
> dogs
John Ajay Aishu Mary Emily Siva
0 1 2 0 2 1
> pets = cats + dogs
> pets
John Ajay Aishu Mary Emily Siva
1 3 3 1 4 2
As you can see, the elements in the cats vector are recycled to be equal to the size of the dogs vector in order to do the addition. Since R needs the vectors to be of the same length to perform operations on them, it is auto-adjusting the length by recycling the existing elements. In fact, this is what is happening when you perform operations on vectors with a single number
> avg = pets-mean(pets)
> avg
John Ajay Aishu Mary Emily Siva
-1.3333333 0.6666667 0.6666667 -1.3333333 1.6666667 -0.3333333
Although the mean(pets) looks like a single numeric number, you should know by now that it is represented internally as a vector in R
> mean(pets)
[1] 2.333333
> class(mean(pets))
[1] "numeric"