Dans cette section, nous discuterons de quelques faits divers liés à la fonction de concaténation, c (), qui sont souvent utiles.
Si les arguments que vous passez à c () sont de différents modes, ils seront réduits à un type qui est le dénominateur commun le plus bas, comme suit:
  1. > c(5,2,"abc")
  2. [1] "5" "2" "abc"
  3. > c(5,2,list(a=1,b=4))
  4. [[1]]
  5. [1] 5
  6. [[2]]
  7. [1] 2
  8. $a
  9. [1] 1
  10. $b
  11. [1] 4
Source code
Dans le premier exemple, nous combinons les modes entier et caractère, une combinaison que R choisit de réduire au dernier mode. Dans le deuxième exemple, R considère que le mode de liste doit avoir une priorité inférieure dans les expressions mixtes. Nous en discuterons plus loin à la section 4.3.
Vous ne voudrez probablement pas écrire de code qui fait de telles combinaisons, mais vous pouvez rencontrer un code dans lequel cela se produit, il est donc important de respecter l'effet.
Un autre point à garder à l'esprit est que c () a un effet d'aplatissement pour les vecteurs, comme dans cet exemple:
  1. > c (5,2, c (1,5,6))
  2. [1] 5,0 2,0 1,5 6,0
Source code
Ceux qui connaissent d'autres langues, comme Python, ont peut-être attendu le code précédent pour produire un objet à deux niveaux. Cela ne se produit pas avec les vecteurs R, même si vous pouvez avoir des listes à deux niveaux, comme vous le verrez au chapitre 4.
Dans le chapitre suivant, nous passons à un cas spécial très important de vecteurs, celui des matrices et des matrices.