Lors de l'application d'une opération à deux vecteurs qui nécessitent qu'ils aient la même longueur, R recycle automatiquement, ou le répète, le plus court, jusqu'à ce qu'il soit suffisamment long pour correspondre le plus long. Voici un exemple:

  1. > c (1,2,4) + c (6,0,9,20,22)
  2. [1] 7 2 13 21 24
Source code

Message d'avertissement: longueur d'objet plus longue
n'est pas un multiple de longueur d'objet plus courte dans: c (1, 2, 4) + c (6, 0, 9, 20, 22)
Le vecteur plus court a été recyclé, de sorte que l'opération a été prise comme suit:

  1. > c (1,2,4,1,2) + c (6,0,9,20,22)
Source code
Voici un exemple plus subtil:

  1. > x
  2. [,1] [,2]
  3. [1,] 1 4
  4. [2,] 2 5
  5. [3,] 3 6
  6. > x+c(1,2)
  7. [,1] [,2]
  8. [1,] 2 6
  9. [2,] 4 6
  10. [3,] 4 8
Source code

Encore une fois, gardez à l'esprit que les matrices sont en fait des vecteurs longs. Ici, x, en tant que matrice 3 par 2, est également un vecteur à six éléments, qui dans R est stocké en colonne par colonne. En d'autres termes, en termes de stockage, x est le même que c (1,2,3,4,5,6). Nous avons ajouté un vecteur à deux éléments à cet élément à six éléments, de sorte que notre vecteur ajouté devait être répété deux fois pour créer six éléments. En d'autres termes, nous procédions essentiellement à cela:

  1. x + c (1,2,1,2,1,2)
Source code

Non seulement cela, mais c (1,2,1,2,1,2) a également été changé d'un vecteur à une matrice ayant la même forme que x avant l'addition a eu lieu:
1 2
2 1
1 2
Ainsi, le résultat net était de calculer ce qui suit: