Chapitre 1 Introduction et concepts de base

1.1 Que peut-on faire avec R

R est un langage orienté vers le traitement de données et l’analyse statistique. Il est développé depuis une vingtaine d’années par un groupe de volontaires de différents pays. L’utilisation de R présente plusieurs avantages :

  • c’est un logiciel multiplateforme (sytèmes Linux, Mac OS X ou Windows) ;

  • c’est un logiciel gratuit et à code source ouvert (opensource)

  • c’est un logiciel très puissant, dont les fonctionnalités de base peuvent être étendues à l’aide d’extensions (packages);

  • c’est un logiciel dont le développement est très actif et dont la communauté d’utilisateurs ne cesse de s’élargir;

  • c’est un logiciel avec d’excellentes capacités graphiques.

Typiquement, on utilise d’abord R pour faire de l’analyse statistique de données. R permet entre autres de réaliser les tâches suivantes :

  • manipuler des données;

  • appeler des fonctions préexistantes ou en programmer des nouvelles;

  • produire des graphiques;

  • rédiger des rapports d’analyse.

Rien n’est parfait !

Comme rien n’est parfait, on peut également trouver quelques inconvénients :

  • le logiciel, la documentation de référence et les principales ressources sont uniquement en anglais;

  • R est un langage de programmation et non pas un logiciel “clique boutons”. Par conséquent, la courbe d’apprentissage peut être un peu « raide », notamment pour ceux n’ayant jamais programmé auparavant.

  • R fonctionne à l’aide de scripts (des petits programmes) édités et exécutés au fur et à mesure de l’analyse.

1.2 R et Rstudio

Vous allez utiliser R via RStudio. Les débutants confondent souvent les deux. C’est simple:

  • R est comme le moteur d’une voiture.

  • RStudio est comme le tableau de bord d’une voiture.

Nous ne conduisons pas une voiture en interagissant directement avec le moteur, mais en utilisant des éléments sur le tableau de bord de la voiture, nous n’utiliserons pas R directement, mais nous utiliserons l’interface de RStudio.

Instalation

Vous pouvez télécharger la version la plus récente de R/Rstudio comme suit :

  1. allez sur le site de R en cliquant sur le lien suivant: R

  2. allez sur le site de Rstudio en cliquant sur le lien suivant: Rstudio

Pour plus de détails, voir: DataCamp video

Après avoir installé R et RStudio sur votre ordinateur, vous aurez deux nouvelles applications. Nous travaillerons toujours avec RStudio et non R. En d’autres termes:

L’interface de RStudio

Une fois Rstudio lancé, vous obtenez cette fenêtre

L’interface de RStudio est divisée en quatre parties:

  1. Le quadrant haut-gauche est dédié aux fichiers sources (scripts).

  2. Le quadrant haut-droite fournit des informations sur vos données en mémoire et votre historique.

  3. Le quadrant bas-droite vous permet de naviguer dans votre répertoire de travail, affiche l’aide, vos graphiques et les extensions disponibles.

  4. Enfin, la console est affichée en bas à gauche.

Inutile de tout retenir pour le moment. Nous aborderons chaque outil en temps utile. Pour l’heure, concentrons-nous sur la console, c’est-à-dire le quadrant inférieur gauche.

  • Votre curseur doit se trouver à la console sur la ligne commençant par le caractère >. Ceci est appelée l’invite de commande (ou prompt en anglais). Elle signifie que R est disponible et en attente de votre prochaine commande.

  • Vous devez alors taper une commande (du code R) dans la console et validez avec la touche Entrée.

  • Si votre code est correct, R vous enverra le résultat (qui est peut-être invisible !) sinon vous aurait un message d’erreur (Error) ou un avertissement (Warning).

Apprendre par soi-même !

Pour apprendre les bases de R de façon interactive, rendez-vous sur cette page:

Les pages suivantes sont excellentes pour apprendre R pas à pas :

1.3 R est une puissante calculatrice

Commençons par une première commande : Tapez 2 + 3 dans la console et validez avec la touche Entrée.

2 + 3
[1] 5

Autres opérations arithmétiques de base :

8 - 12
[1] -4
14 * 25
[1] 350
-3/10
[1] -0.3
2^5  # une exponentiation (2 à la puissance 5)
[1] 32
1/0
[1] Inf
-1/0
[1] -Inf

Remarquez l’usage du symbole # pour le rajout de commentaires dans le code R. Un commentaire est une ligne ou une portion de ligne qui sera ignorée par R. On va les utiliser pour documenter notre code.

sqrt(4)  # racine carrée
[1] 2
log(4)  # logarithme népérien (base e)
[1] 1.3863
exp(4)  # exponentielle
[1] 54.598
abs(-4)  # valeur absolue
[1] 4

Vous pouvez combiner plusieurs opérations dans la même commande, comme ici

((7 * 3) + 12/2 - 7^2 + sqrt(4) - abs(log(0.05)))/(2^3 + 1)
[1] -2.5551

Astuces

Quelques petites astuces très utiles avant d’aller plus loin :

  • Dans la console, utilisez les flèches Haut et Bas du clavier pour naviguer dans l’historique des commandes tapées précédemment, vous pouvez ainsi facilement les réexécuter ou modifier.

  • L’onglet History du quadrant haut-droite vous permet de consulter l’historique des commandes que vous avez transmises à R:

    • Un double-clic sur une commande la recopiera automatiquement dans la console.

    • Vous pouvez également sélectionner une ou plusieurs commandes (à l’aide de la touche clavier Ctrl) puis cliquer sur To Console.

  • Lorsqu’on fournit à R une commande incomplète, R nous propose de la compléter en nous présentant une invite de commande spéciale utilisant le signe +.

3 *
+
  • On peut alors compléter la commande et appuyer sur Entrée ou l’annuler en utilisant la touche Echap ou Esc sous Windows.

1.4 Stocker une valeur dans un objet

On aimerait pouvoir réutiliser le résultat d’une opération sans avoir à le resaisir ou à le copier/coller.

x <- 12  # assigner la valeur 12 à l’objet nommé x

<- est l’opérateur d’assignation. Notons que = est aussi un opérateur d’assignation. La pratique la plus recommandée en programmation R est d’utiliser <-.

Pour afficher un objet, il suffit de taper son nom

x
[1] 12

On peut maintenant faire toutes sortes d’opérations sur x :

x + 5
[1] 17
x^2
[1] 144
sqrt(x)
[1] 3.4641

Modifier la valeur d’un objet

On peut aussi modifier ou réutiliser cet objet dans d’autres calculs :

x
[1] 12
x <- 1
x
[1] 1
x <- x + 5
x
[1] 6

Objet de type caractère

Voici un autre objet

nom <- "Benjamin"
nom
[1] "Benjamin"

Remarquez que ce sont les guillemets qui indiquent à R qu’il s’agit d’une donnée de type caractère.

La fonction str

Pour connaitre la structure et la nature d’un objet, utilisez la fonction str.

str(x)
 num 6
str(nom)
 chr "Benjamin"

En effet, x est un objet de type numérique (soit un double=réelle ou un integer=entier) alors que nom est un objet de type caractère (character).

Il y a d’autres types d’objets qu’on découvrira plus tard.

Il existe aussi des objets prédéfinis dans R, voici quelques exemples

pi
[1] 3.1416
NULL  # Objet vide: « rien »
NULL
Inf  # représente + infini
[1] Inf
-Inf  # représente - infini
[1] -Inf
letters
 [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q"
[18] "r" "s" "t" "u" "v" "w" "x" "y" "z"
LETTERS
 [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q"
[18] "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
month.name
 [1] "January"   "February"  "March"     "April"     "May"      
 [6] "June"      "July"      "August"    "September" "October"  
[11] "November"  "December" 

1.5 D’autres manipulations élémentaires

Voici quelques exemples de manipulation d’objets en R

x <- 27
y <- 2
x - y
[1] 25
x * y
[1] 54
x/y
[1] 13.5
x^y
[1] 729
log((x + 5)/(2 * y))
[1] 2.0794

Message d’erreur

Sachez que vous ne pouvez pas écrire n’importe quoi en R ! Voici un exemple d’un message d’erreur.

x + nom
Error in x + nom: non-numeric argument to binary operator

R différencie les majuscules et les minuscules. Donc X n’est pas le même objet que x en R.

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

Liste des objets : la fonction ls

Pour voir la liste de tous les objets disponibles, on utilse la fonction ls

ls()
[1] "x" "y"

Vous pouvez aussi consuler l’onglet Environment (dans le quadrant supérieur droit) pour voir la liste des objets disponibles.

Suprimer un objet : la fonction rm

Pour suprimer un objet, on utilse la fonction rm

rm(x)

Si vous tapez x, vous obtenez un message d’erreur, puisque l’objet x n’existe plus.

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

Plusieurs commandes sur une ligne

Même si ce n’est pas recommandé pour des questions de confort de lecture, il est possible d’écrire plusieurs commandes sur une seule ligne. Voici un exemple:

x <- 27; y <- 2; x - y; log((x + 5) / (2 * y))
[1] 25
[1] 2.0794