Chapitre 3 Scripter avec RStudio

Avant de débuter voici quelques bonnes pratiques et astuces du code R :

Nom des variables:

  • Autant que possible, utiliser des noms courts et explicites pour vos variables. Nommer une variable var n’est pas très instructif.
  • Utilisez un trait de soulignement _ pour séparer les mots d’un nom ou essayez d’être constant!
  • Évitez les noms d’objets de fonction qui existe dans R (e.g. c ou table)

Espace :

  • Ajoutez des espaces autour de tous les opérateurs (=, +, -, <-, etc.) pour rendre le code plus lisible
  • Mettez un espace après une virgule, mais jamais avant (comme en français).

Valeurs de vos tableaux de données

Les noms des colonnes et leur contenu n’ont ni accent, ni d’espace, ni caractères spéciaux puisque R préfère une seule suite de caractères comme titre. Par exemple, pour “Nombre d’espèces” il est préférable d’utiliser la forme “num_sp”.

Autre

La touche Tabulation ou Tab permet de compléter automatiquement les noms d’objets/fonction. Çela accélère l’entrée des commandes et évite les erreurs de frappe.

R est sensible à la casse, i.e. A est différent de a.

3.1 Créer un script

Lorsque vous lancez RStudio, le premier élément que vous voyez à gauche de l’écran correspond à la console. Pour créer un nouveau script vous devez cliquez sur l’icone de la page blanche avec le symbole + vert en haut à gauche complètement. Dans le menu déroulant sélectionner R Script. La section R Markdown aborde une différentes manière de rédiger ses scripts favorisant l’annotation et l’organisation du code en plus de l’exportation des scripts sous différents formats (PDF, HTML, etc.) pour le partage des scripts.

3.2 Exécuter une commande

Déplacez votre curseur sur la ligne que vous voulez exécuter puis cliquer sur le bouton run en haut à gauche. Vous pouvez aussi sélectionner plusieurs lignes à la fois. Le raccourcit clavier est Alt + Enter pour les utilisateurs Windows et Command + Enter pour les utilisateurs Mac.

3.3 Répertoire de travail

Lorsque l’on demande à R d’importer un fichier, R recherche le nom du fichier qu’on lui a transmis dans le répertoire de travail (Working Directory, wd) actuellement défini, qui correspond au répertoire dans lequel R est actuellement en train de s’exécuter.

  • Pour afficher le répertoire de travail actuel on utilise la fonction getwd().

  • Pour définir un répertoire de travail il existe plusieurs options :

    • Utiliser la fonction setwd() : on inscrit entre les parenthèses et entre guillemets le “chemin” vers le dossier.
    • Utiliser l’onglet Environnement : sélectionner un dossier ⇒ logo rouage (More) ⇒ Set As Working Directory.
    • À partir de l’onglet Session : dans le menu déroulant sélectionner Set Working DirectoryChange directory.

Par exemple, par défault, le répertoire de travail des postes informatiques de l’UQAM est le dossier Documents. Si vous exécuter la fonction getwd() vous devriez obtenir un résultat similaire à celui-ci (ignorer le [1]) :

getwd()
[1] "C:\Users\votrenom\Documents"

Attention l’expression du chemin varie en fonction du système d’exploitation de l’ordinateur. Celui présenté plus haut est typique à Windows alors que pour Mac et Linux le chemin ressemble plutôt à ceci :

getwd()
[1] "/Users/votrenom/Documents"

3.4 Utiliser des fonctions R

Le nom d’une fonction dans R est toujours suivi d’une paire de parenthèses même s’il n’y a rien de contenu entre les parenthèses (pensez à getwd()). Le ou les arguments d’une fonction sont placés entre parenthèses et séparés par des virgules. Vous pouvez considérer un argument comme un moyen de personnaliser l’utilisation ou le comportement d’une fonction. Enfin, l’un des principaux défis de R est de savoir quelle fonction utiliser pour une tâche particulière et comment l’utiliser. Heureusement, chaque fonction est toujours associée à un document d’aide qui explique comment utiliser la fonction (une recherche rapide sur Google vous aidera également généralement). Pour trouver de l’aide sur une fonction le point d’interrogation peut être utilisé.

Exemple :

?getwd()

3.5 Commentaires

Le symbole # est utilisé pour insérer des commentaires au sein d’un script. Cela indique à R d’ignorer tout ce qui se trouve sur une ligne à la suite du symbole # lors de l’exécution de commandes. Considérant que les commentaires sont ignorés par R lors de l’exécution de scripts, il est possible de se laisser des notes indiquant ce qui a été fait. Un script enrichi de commentaires est une excellente façon de collaborer à une science reproductible.

Exemple :

# J'utilise la commde getwd() pour obtenir mon répertoire de travail 
getwd()

3.6 Importer un taleau de données

Un tableau de données est une liste de vecteurs rangés colonne par colonne. Chaque colonne du tableau correspond à une variable, chaque ligne à une observation. Les variables peuvent être de différents types (numérique, booléen, character, …). Sous R, les tableaux de données sont des objets particuliers appelés data.frame.

En analyse de données, les fichiers sont typiquement enregistrer sous le format Comma Seperated Value (csv). CSV est un format de fichier de texte simple utilisé pour stocker les données tabulaires, comme des feuilles de calcul ou des bases de données. Chaque ligne d’un fichier CSV représente une ligne et les valeurs d’une ligne sont séparées par des virgules. C’est un format de fichier simple et largement pris en charge qui permet d’importer et d’exporter facilement des données entre différentes applications logicielles.

Pour importer ce type de fichier dans R on peut utiliser la fonction read.csv. Les arguments fréquemments utilisés pour cette fonction sont les suivants :

  • file : Spécifier le nom du fichier (inclure l’extension)
  • header : Indiquer si la première ligne de notre tableau correspond au nom des colonnes (valeurs possibles TRUE/FALSE)
  • row.names : Indiquer quelle colonne de notre tableau correspond au nom des rangés (valeurs possible = numérique correspondant au numéro de la colonne)
  • sep : Spécifier quel caractère doit servir de séparateur pour les colonnes (il peut arriver que d’autre symbole tels que le point-virgule servent de séparateur plutôt que la virgule)
  • check.name : Ne pas systématiquement remplacer le trait d’union par un point (valeurs possible TRUE/FALSE)

Exemple :

df = read.csv(file = "nom_fichier.csv", header = TRUE, row.names = 1, sep = ",", check.names = FALSE)  

Pour un tableau en format tab delimited on peut utiliser la fonction read.table et spécifier \t comme séparateur.