Search
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

Les nombres, les caractères et les booléens

num<-25
string<-"bonjour"
booleen<-TRUE

On peut appeler la variable string et elle nous retourne ceci:

string
'bonjour'

Afin de donner une valeur de type string à une variable, on peut utiliser les doubles 'apostrophes', ou des "guillemets"

On peut assigner une valeur booléenne à une variable par TRUE ou FALSE, mais aussi par simplement T ou F

booleen2 <-T
booleen2
TRUE

Il est possible de savoir quel type possède une variable gardée en mémoire

class(string)
'character'
class(booleen)
'logical'
class(num)
'numeric'

On peut aussi faire un test booléen sur le type d'une variable par

  • is.numeric(variable)
  • is.logical(variable)
  • is.character(variable)
is.logical(num)
FALSE
is.numeric(num)
TRUE

Changement du type de variable

On peut aussi changer le type d'une variable

as.character(num)
'25'

Remarquons les apostrophes. Toutefois, il faut faire attention avec les conversions; essayons de convertir un string en numeric

# as.numeric(string)

Nous obtenons NA (not available). Car R ne sait pas comment traduire cette variable de type string en numeric.

Toutefois, il est possible de changer des booléens vers numérique.

  • TRUE=T=1
  • FALSE=F=0
as.numeric(booleen)
1

Tester le type de variable

On peut aussi faire un test booléen sur deux valeurs. Par exemple, on peut demander si une valeur est plus petite ou égale (ou supérieure ou égale) à une autre variable.

num<100
TRUE
num<=100
TRUE
num>=100
FALSE

Test d'égalité

Le test sur l'égalité se fait par un double ==

x==y
TRUE
x==num
FALSE

Test d'inégalité

Pour ce qui est du test d'inégalité, on utilise !=

x!=y
FALSE
x!=num
TRUE

On peut aussi faire des tests logiques sur les valeurs de type string

string2<-"bonjours"
string==string2
FALSE
string!=string2
TRUE

Les raccourcis clavier:

Voici un lien