Généralement, les langages compilés exigent que vous déclariez des variables; c'est-à-dire avertir l'interprète / compilateur de l'existence des variables avant de les utiliser. C'est le cas dans notre exemple C précédent:
int x; int y [3];
Comme dans la plupart des langages de script (tels que Python et Perl), vous ne déclarez pas de variables dans R. Par exemple, considérez ce code:
Ce code, sans référence antérieure à z, est parfaitement légal (et commun).
Cependant, si vous faites référence à des éléments spécifiques d'un vecteur, vous devez avertir R. Par exemple, disons que nous voulons que y soit un vecteur à deux composants avec les valeurs 5 et 12. Ce qui suit ne fonctionnera pas:
Au lieu de cela, vous devez créer le premier, par exemple de cette façon:
Ce qui suit fonctionnera également:
> y <- c (5,12)
Cette approche est correcte car sur le côté droit, nous créons un nouveau vecteur, auquel nous lierons ensuite.
La raison pour laquelle nous ne pouvons pas émerger soudainement une expression comme y [2] sur R provient de la nature du langage fonctionnel de R. La lecture et l'écriture d'éléments vectoriels individuels sont effectivement gérées par des fonctions. Si R ne sait pas déjà que y est un vecteur, ces fonctions n'ont rien à agir.
Parlant de la liaison, tout comme les variables ne sont pas déclarées, elles ne sont pas contraintes en termes de mode. La séquence d'événements suivante est parfaitement valable:
Tout d'abord, x est associé à un vecteur numérique, puis à une chaîne. (Encore une fois, pour les programmeurs C / C ++: x n'est rien d'autre qu'un pointeur, qui peut pointer vers différents types d'objets à différents moments.)