Assignation des variables#

Comment peut-on assigner des valeurs à des variables? R reconnait les valeurs numériques telles qu’elles sont.

3
3
2
2

Toutesfois, il existe d’autres variables numériques écrites en caractère. Par exemple, \(\pi\). lorsqu’on saisit pi dans R, il nous redonne la valeur numérique (arrondie) de \(\pi\)

pi
3.14159265358979

Ce sont des variables déjà existantes dans R. Si l’on voulait chercher des valeurs non existantes dans R, ce dernier nous retourne un message d’erreur;

x
Error in eval(expr, envir, enclos): object 'x' not found
Traceback:

On peut assigner une valeur à une variable de différentes manières;

avec le signe =#

x=2
x
2
y=3
y
3

La flèche vers la gauche <-#

Par convention, nous utilison cette méthode

x<-2
x
2
y<-3

Nous avons donné la valeur 2 à \(x\) et la valeur 3 à \(y\). Ces valeurs sont gardées en mémoire, on peut d’ailleurs faire des opérations mathématiques sur ces valeurs. Par exemple on veut $\(x+y\)$

x+y
5

Si l’on voulait appliquer, un calcule sur une variable que nous n’y avons pas assigner une valeur auparavant, cela ne fonctionnerait pas, puisque R ne l’a pas gardé en mémoire.

z+1
Error in eval(expr, envir, enclos): object 'z' not found
Traceback:

Rappelons-nous que R est case sensitive, par exemple:

X
Error in eval(expr, envir, enclos): object 'X' not found
Traceback:

Nous avons essayé d’appeler \(X\), mais il nous retourne un message d’erreur. Cela est dû à cause la majuscule.

nous avions donné à x la valeur x<-2 et y<-3

print(x)
print(y)
[1] 2
[1] 3

Nous pouvons écraser la valeur de x en lui assignant la valeur de y;

x<-y
print(x)
print(y)
[1] 3
[1] 3

Soit maintenant \(z=9\), on peut aussi faire ceci:

x<-y<-z<-9
print(x)
print(y)
print(z)
[1] 9
[1] 9
[1] 9

Remarquez que R commence toujours par la fin, la valeur 9 a été assignée à toutes les variables.

La flèche vers la droite ->#

On peut aussi utiliser l’autre sens de la flèche (vers la droite) pour assigner des valeurs à des variables

15 ->p

Toutefois, nous restons dans la convention et utilisons la flèche vers la gauche

La fonction assign()#

Nous pouvons aussi utliliser la fonction assign()

assign(x, value, pos = -1, envir = as.environment(pos),
       inherits = FALSE, immediate = TRUE)
assign("q",30)
q
30

Cette fonction est souvent utilisée à l’intérieur d’une boucle où l’on voudrait assigner une valeur quelconque à une variable qui peut changer lors des itérations