Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
r_atelier1 [2020/11/03 15:37]
dcaron [Script R]
r_atelier1 [2020/11/09 14:24] (current)
lsherin
Line 11: Line 11:
 Développé par : Sylvain Christin, Cédric Frenette Dussault, Dalal Hanna Développé par : Sylvain Christin, Cédric Frenette Dussault, Dalal Hanna
  
-**Résumé :** Dans cet atelier ​d’introduction à R, vous apprendrez ce qu’est le logiciel d’analyse statistique Rvous verrez ​plusieurs raisons pourquoi vous devriez ​absolument ​l’utiliser ​(!), et vous ferez vos premiers pas dans ce logicielVous verrez comment R peut être utilisé comme une calculatrice,​ vous apprendrez ce qu’est un « objet » dans R, et vous utiliserez des fonctions simples. De plus, vous apprendrez comment télécharger de nouvelles fonctions et comment trouver des ressources d’aide pour utiliser R. Si tout ceci vous semble étrange, ne vous inquiétez pas! À la fin de cet atelier, vous comprendrez tous ces concepts. ​+**Résumé :** Durant ​cet atelier, vous apprendrez ce qu’est le logiciel d’analyse statistique R et vous découvrerai ​plusieurs raisons pourquoi vous devriez l’utiliser. Vous ferez vos premiers pas dans ce logicielVous verrez comment R peut être utilisé comme une calculatrice,​ vous apprendrez ce qu’est un « objet » dans R, et vous utiliserez des fonctions simples. De plus, vous apprendrez comment télécharger de nouvelles fonctions et comment trouver des ressources d’aide pour utiliser R. Si tout ceci vous semble étrange, ne vous inquiétez pas! À la fin de cet atelier, vous comprendrez tous ces concepts. ​
  
 **Lien vers la nouvelle [[https://​qcbsrworkshops.github.io/​workshop01/​workshop01-fr/​workshop01-fr.html#​1|présentation Rmarkdown]]** **Lien vers la nouvelle [[https://​qcbsrworkshops.github.io/​workshop01/​workshop01-fr/​workshop01-fr.html#​1|présentation Rmarkdown]]**
Line 20: Line 20:
 Lien vers l'​ancienne [[http://​prezi.com/​8ckbtue5pgi4/​csbq-atelier-r-1/​|présentation Prezi]] Lien vers l'​ancienne [[http://​prezi.com/​8ckbtue5pgi4/​csbq-atelier-r-1/​|présentation Prezi]]
  
-Téléchargez le [[https://​github.com/​QCBSRworkshops/​workshop01/​blob/​dev/​workshop01-fr/​workshop01-fr.R|script]] requis pour cet atelier. +Téléchargez le [[https://​github.com/​QCBSRworkshops/​workshop01/​blob/​dev/​workshop01-fr/​ReferenceScriptAtelier1.R|script]] requis pour cet atelier.
- +
- +
  
 ===== Installation de R et de R Studio ===== ===== Installation de R et de R Studio =====
Line 40: Line 37:
 ==== Qu'​est-ce que R? ==== ==== Qu'​est-ce que R? ====
 ---- ----
-R est un langage de programmation [[https://​fr.wikipedia.org/​wiki/​Open_source|open source]] conçu pour l'​analyse statistique,​ l'​exploration ​de données ​et la visualisation de données.+R est un langage de programmation [[https://​fr.wikipedia.org/​wiki/​Open_source|open source]] conçu pour l'​analyse statistique,​ l'​exploration et la visualisation de données.
  
 ==== Pourquoi utiliser R? ==== ==== Pourquoi utiliser R? ====
 ---- ----
-  * R est en source libre ! Ça signifie que ce logiciel est libre et gratuit et constamment mis à jour et amélioré.+  * R est en source libre ! Ça signifie que ce logiciel est libregratuit et constamment mis à jour et amélioré.
  
   * R est compatible avec la majorité des système d'​exploitation,​ ce qui rend le partage de codes R facile. De plus, le langage R permet d'​entrer en contact avec des gens de divers horizons à travers le monde et avec différents systèmes d'​exploitation.   * R est compatible avec la majorité des système d'​exploitation,​ ce qui rend le partage de codes R facile. De plus, le langage R permet d'​entrer en contact avec des gens de divers horizons à travers le monde et avec différents systèmes d'​exploitation.
Line 53: Line 50:
  
 {{::​operating_systems.png?​100|}} ​   {{::​open_source.png?​200|}} ​    ​{{::​the_why_r_plot_2.png?​400|}} {{::​operating_systems.png?​100|}} ​   {{::​open_source.png?​200|}} ​    ​{{::​the_why_r_plot_2.png?​400|}}
-==== Utiliser ​R Studio ​====+ 
 +==== Utiliser ​RStudio ​====
 ---- ----
-R Studio ​est un environnement de développement intégré pour R. Ça signifie que c'est un endroit où on peut utiliser le langage R, visualiser des tableaux et des figures et même réaliser une multitude d'​analyses statistiques. Il est recommandé d'​utiliser R Studio au lieu de la simple ligne de commande, car plusieurs options de visualisation et outils (que vous apprendrez au cours de cet atelier) sont disponibles avec R Studio.+RStudio ​est un environnement de développement intégré pour R. Ça signifie que c'est un endroit où on peut utiliser le langage R, visualiser des tableaux et des figures et même réaliser une multitude d'​analyses statistiques. Il est recommandé d'​utiliser R Studio au lieu de la simple ligne de commande, car plusieurs options de visualisation et outils (que vous apprendrez au cours de cet atelier) sont disponibles avec RStudio.
 ---- ----
 == Défi 1 == == Défi 1 ==
-Lancer ​R Studio+Lancer ​RStudio
  
 {{:​logo_rstudio.jpg?​200|R Studio logo}} {{:​logo_rstudio.jpg?​200|R Studio logo}}
- 
  
 **Note pour les utilisateurs Windows**: si la restriction:​ "​Unable to write on disk" apparaît quand vous ouvrez R Studio ou que vous installez une bibliothèque,​ fermer l'​application. Cliqué avec le bouton droit de la souris sur l'​icône R Studio et choisissez “Execute as administrator” pour ouvrir R Studio. ​ **Note pour les utilisateurs Windows**: si la restriction:​ "​Unable to write on disk" apparaît quand vous ouvrez R Studio ou que vous installez une bibliothèque,​ fermer l'​application. Cliqué avec le bouton droit de la souris sur l'​icône R Studio et choisissez “Execute as administrator” pour ouvrir R Studio. ​
 ---- ----
-Lorsque vous lancez ​R Studio, le premier élément que vous voyez à la gauche de l'​écran est la console. C'est à cet endroit que vous allez travailler pour le reste de cet atelier d'​introduction à R. +**La console** 
 + 
 +Lorsque vous lancez ​RStudio, le premier élément que vous voyez à la gauche de l'​écran est la console. C'est à cet endroit que vous allez travailler pour le reste de cet atelier d'​introduction à R. 
  
 {{:​Rstudioconsole_fleche.png?​800|R Studio console}} {{:​Rstudioconsole_fleche.png?​800|R Studio console}}
Line 83: Line 82:
 [6] 6 7 8 9 10 [6] 6 7 8 9 10
 </​file>​ </​file>​
-==== 2. Utiliser R comme une calculatrice ===== +===== 2. Utiliser R comme une calculatrice ​====== 
------+
 La première chose à savoir à propos de la console R est qu'on peut l'​utiliser comme calculatrice. La première chose à savoir à propos de la console R est qu'on peut l'​utiliser comme calculatrice.
 <file rsplus| Addition>​ <file rsplus| Addition>​
Line 123: Line 122:
 2 + 16 x 24 - 56 / ( 2 + 1) - 457  2 + 16 x 24 - 56 / ( 2 + 1) - 457 
  
-//Faites attention à la priorité des opérations !//+//Faites attention à la priorité des opérations!//​
  
 ++Défi 3 : Solution| \\ ''>​ 2 + 16 * 24 - 56 / (2 + 1) - 457\\ ++Défi 3 : Solution| \\ ''>​ 2 + 16 * 24 - 56 / (2 + 1) - 457\\
Line 144: Line 143:
 [1] 78.54''​ \\ ou \\ ''>​ pi * 5^2\\  [1] 78.54''​ \\ ou \\ ''>​ pi * 5^2\\ 
 [1] 78.53982''​++ \\ [1] 78.53982''​++ \\
 +
 ===== 3. Manipuler les objets dans R ===== ===== 3. Manipuler les objets dans R =====
  
Line 154: Line 154:
   - La valeur d’intérêt peut être à peu près de n’importe quelle nature : un nombre, le résultat d’un calcul, une chaîne de caractères,​ un tableau de données, un graphique ou une fonction. ​   - La valeur d’intérêt peut être à peu près de n’importe quelle nature : un nombre, le résultat d’un calcul, une chaîne de caractères,​ un tableau de données, un graphique ou une fonction. ​
   - L’identifiant est le nom qui est assigné à la valeur d’intérêt. Lorsqu’on veut faire référence à cette valeur, il suffit simplement de taper son nom à la console et R va afficher cette valeur. Les identifiants peuvent seulement inclure des lettres, des chiffres, des points et des traits de soulignement (//​underscore//​). Ils doivent toujours débuter par une lettre. ​   - L’identifiant est le nom qui est assigné à la valeur d’intérêt. Lorsqu’on veut faire référence à cette valeur, il suffit simplement de taper son nom à la console et R va afficher cette valeur. Les identifiants peuvent seulement inclure des lettres, des chiffres, des points et des traits de soulignement (//​underscore//​). Ils doivent toujours débuter par une lettre. ​
-  - L’opérateur d’assignation ressemble à une flèche (''​%%<​-%%''​) et est utilisé afin de lier la valeur d’intérêt à son identifiant. Le code suivant illustre le concept d’objet :+  - L’opérateur d’assignation ressemble à une flèche (''​%%<​-%%''​) et est utilisé afin de lier la valeur d’intérêt à son identifiant. ​ 
 + 
 +Le code suivant illustre le concept d’objet :
  
 <file rsplus| Illustration du concept d’objet>​ <file rsplus| Illustration du concept d’objet>​
Line 180: Line 182:
  
 </​file>​ </​file>​
 +----
 === Bonnes pratiques du code R === === Bonnes pratiques du code R ===
 +
 **Nom**: **Nom**:
-Essayez d'​avoir des noms courts et explicites pour vos variables. Nommer une variable ​`varn'est pas très instructif. +  * Essayez d'​avoir 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! +  ​* ​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. `cou `table`)+  ​* ​Évitez les noms d'​objets de fonction qui existe dans R (e.g. ''​c'' ​ou ''​table''​)
  
 **Espace**: **Espace**:
-Ajoutez des espaces autour de tous les opérateurs (`=``+``-``<-`, etc.) pour rendre le code plus lisible +  * 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). +  ​* ​Mettez un espace après une virgule, mais jamais avant (comme en français).
-<file rsplus| Priorité avec l’opérateur d’assignation et le symbole d’égalité > +
-> moy_x <- (2 + 6) / 2+
  
-> moy_x 
-[1] 4 
- 
-</​file>​ 
 ----- -----
 == Défi 5 == == Défi 5 ==
Line 220: Line 217:
  
 La touche « Tabulation » permet de compléter automatiquement les noms d’objets. Ça accélère l’entrée des commandes et ça évite les erreurs de frappe. Par exemple, si vous tapez ''​val''​ et appuyez sur « Tabulation » ensuite, vous allez voir une liste d’objets ou de fonctions débutant par ''​val''​. Sélectionnez ''​valeur_euler''​ (l’objet que vous venez de créer) et appuyez sur « Entrée ». L’identifiant ''​valeur_euler''​ apparaît maintenant dans la console. La touche « Tabulation » permet de compléter automatiquement les noms d’objets. Ça accélère l’entrée des commandes et ça évite les erreurs de frappe. Par exemple, si vous tapez ''​val''​ et appuyez sur « Tabulation » ensuite, vous allez voir une liste d’objets ou de fonctions débutant par ''​val''​. Sélectionnez ''​valeur_euler''​ (l’objet que vous venez de créer) et appuyez sur « Entrée ». L’identifiant ''​valeur_euler''​ apparaît maintenant dans la console.
-\\+
 ==== Types de structures de données en R ==== ==== Types de structures de données en R ====
 ----- -----
Line 277: Line 274:
 </​code>​ </​code>​
  
-Cette démonstration n’est peut-être pas convaincante,​ mais ces fonctions peuvent s’avérer fort utiles lors de la manipulation de données! Notamment si vous souhaitez fournir un exemple reproductible dans le cas d'une question sur **stackoverflow**, par exemple.+Cette démonstration n’est peut-être pas convaincante,​ mais ces fonctions peuvent s’avérer fort utiles lors de la manipulation de données! Notamment si vous souhaitez fournir un exemple reproductible dans le cas d'une question sur [[https://stackoverflow.com/|Stack Overflow]], par exemple.
 ----- -----
  
Line 349: Line 346:
 ==== Indexer des objets dans R ==== ==== Indexer des objets dans R ====
 ---- ----
-** Indexer un Vecteur**+=== Indexer un vecteur===
  
 Lorsqu’on tape le nom d’un objet dans la console, R retourne l’objet en entier. Par contre, ce n’est pas pratique si l’objet est, par exemple, une énorme base de données avec des millions de lignes. Ça peut rapidement devenir difficile d’identifier des éléments précis d’un objet. R nous permet d’extraire certaines parties d’un objet en indexant ce dernier. Il suffit de spécifier la position des valeurs à l’intérieur d’un objet qu’on souhaite extraire à l’aide des crochets ''​[ ]''​. Le code suivant illustre le concept d’indexation des vecteurs. Lorsqu’on tape le nom d’un objet dans la console, R retourne l’objet en entier. Par contre, ce n’est pas pratique si l’objet est, par exemple, une énorme base de données avec des millions de lignes. Ça peut rapidement devenir difficile d’identifier des éléments précis d’un objet. R nous permet d’extraire certaines parties d’un objet en indexant ce dernier. Il suffit de spécifier la position des valeurs à l’intérieur d’un objet qu’on souhaite extraire à l’aide des crochets ''​[ ]''​. Le code suivant illustre le concept d’indexation des vecteurs.
Line 430: Line 427:
 ++++ ++++
 ----- -----
-** Indexer un data frame**+=== Indexer un data frame ===
  
 L’indexation des data frames est similaire à celle des vecteurs, mais il est généralement nécessaire de spécifier deux dimensions : le numéro de ligne et de colonne. Pour ce faire, la syntaxe dans R est : L’indexation des data frames est similaire à celle des vecteurs, mais il est généralement nécessaire de spécifier deux dimensions : le numéro de ligne et de colonne. Pour ce faire, la syntaxe dans R est :
  
- ''​tableau[numéro de ligne, numéro de colonne]''​. ​+ ''​data frame[numéro de ligne, numéro de colonne]''​. ​
  
 Voici quelques exemples d’indexation de data frames. Prenez note que les quatre premières opérations sont également valides pour les matrices. Voici quelques exemples d’indexation de data frames. Prenez note que les quatre premières opérations sont également valides pour les matrices.
Line 464: Line 461:
 </​file>​ </​file>​
 ----- -----
-**Un bref commentaire sur les déclarations logiques**+=== Un bref commentaire sur les déclarations logiques ​===
  
 R permet de tester les déclarations logiques, i.e. tester si une déclaration est vraie ou fausse. Vous devez utiliser des opérateurs logiques pour cela. R permet de tester les déclarations logiques, i.e. tester si une déclaration est vraie ou fausse. Vous devez utiliser des opérateurs logiques pour cela.
Line 545: Line 542:
 [1] 3 [1] 3
 </​file>​ </​file>​
- 
  
 Les arguments sont des **valeurs** utilisées comme instructions pour que la fonction puisse retourner un résultat. Les arguments sont des **valeurs** utilisées comme instructions pour que la fonction puisse retourner un résultat.
Line 597: Line 593:
 ++++ ++++
 ----- -----
-**Arguments**+=== Arguments ​===
  
 Tous les arguments ont un **nom** qui peut être indiqué lorsqu'​on appelle une fonction.\\ Tous les arguments ont un **nom** qui peut être indiqué lorsqu'​on appelle une fonction.\\
Line 608: Line 604:
 > log(x = 8, base = 2) > log(x = 8, base = 2)
 </​file>  ​ </​file>  ​
-\\ 
 ----- -----
 == Défi 12 == == Défi 12 ==
Line 680: Line 675:
 ''​Erreur:​ impossible de trouver la fonction "​qplot"''​ ''​Erreur:​ impossible de trouver la fonction "​qplot"''​
  
-Pour utiliser la fonction ''​qplot()'',​ il faut charger le paquet ​''​ggplot2''​ avant d'​appeler cette fonction.+Pour utiliser la fonction ''​qplot()'',​ il faut charger le package ​''​ggplot2''​ avant d'​appeler cette fonction.
  
 <code rsplus> <code rsplus>
Line 687: Line 682:
 </​code>​ </​code>​
  
-La fonction peut maintenant être trouvée par R et l'​exécution de cette fonction retourne le graphique suivant :\\ +La fonction peut maintenant être trouvée par R et l'​exécution de cette fonction retourne le graphique suivant :
-{{::​qplot.png?​200|}}\\+
  
-Il est de bon usage de décharger les paquets ​une fois que l'on a fini de les utiliser car ils pourraient entrer en conflit avec d'​autres ​paquets. Le déchargement est effectué avec la fonction ''​detach()''​ et en spécifiant qu'il s'agit d'​un ​paquet+{{::​qplot.png?​200|}} 
-<file rsplus| Déchargement d'​un ​paquet>+ 
 +Il est de bon usage de décharger les packages ​une fois que l'on a fini de les utiliser car ils pourraient entrer en conflit avec d'​autres ​packages. Le déchargement est effectué avec la fonction ''​detach()''​ et en spécifiant qu'il s'agit d'​un ​package
 +<file rsplus| Déchargement d'​un ​package>
 > detach(package:​ggplot2) > detach(package:​ggplot2)
 </​file>​ </​file>​
Line 699: Line 695:
 ----- -----
  
-**Recherche de fonctions**+=== Recherche de fonctions ​===
  
 Nous avons vu jusqu'​à maintenant que R est un outil très puissant et comporte de nombreuses fonctions. Parmi ces fonctions, il y en a probablement une qui vous permet d'​effectuer une tâche que vous devez compléter. Nous avons vu jusqu'​à maintenant que R est un outil très puissant et comporte de nombreuses fonctions. Parmi ces fonctions, il y en a probablement une qui vous permet d'​effectuer une tâche que vous devez compléter.
Line 725: Line 721:
 Dans le cas présent, le résultat qui nous intéresse est ''​base::​seq'',​ //i.e.// la fonction ''​seq''​ qui se trouve dans le package ''​base''​ qui permet de générer des séquences.\\ Dans le cas présent, le résultat qui nous intéresse est ''​base::​seq'',​ //i.e.// la fonction ''​seq''​ qui se trouve dans le package ''​base''​ qui permet de générer des séquences.\\
 **Note** : Le package ''​base''​ comporte des fonctions de base qui se chargent automatiquement lorsqu'​on lance R. Elles sont donc toujours disponibles. **Note** : Le package ''​base''​ comporte des fonctions de base qui se chargent automatiquement lorsqu'​on lance R. Elles sont donc toujours disponibles.
----- +----- 
-**Aide pour les fonctions**+=== Aide pour les fonctions ​===
  
 Utilisons la fonction ''​seq()''​ afin de générer notre séquence de nombres pairs. Pour l'​instant,​ nous ne savons rien de cette fonction. Comment fonctionne-t-elle ? Comment l'​utiliser ? Utilisons la fonction ''​seq()''​ afin de générer notre séquence de nombres pairs. Pour l'​instant,​ nous ne savons rien de cette fonction. Comment fonctionne-t-elle ? Comment l'​utiliser ?
Line 744: Line 740:
 Une page d'aide contient généralement les sections et éléments suivants : Une page d'aide contient généralement les sections et éléments suivants :
 (**Note** : parfois, une même page d'aide est utilisée pour plus d'une fonction.) (**Note** : parfois, une même page d'aide est utilisée pour plus d'une fonction.)
-  * Dans le coin supérieur gauche, les noms de la fonction et du package dans lequel elle se trouve sont indiqués dans le format suivant : ''//​fonction//​ {**paquet**}''​.+  * Dans le coin supérieur gauche, les noms de la fonction et du package dans lequel elle se trouve sont indiqués dans le format suivant : ''//​fonction//​ {**package**}''​.
   * **Description**:​ Une brève description de la fonction.   * **Description**:​ Une brève description de la fonction.
   * **Usage**: Explique comment utiliser la fonction, en particulier quels sont les noms et l'​ordre des arguments. Si une valeur est spécifiée pour un argument, ça signifie que c'est la valeur par défaut de cet argument et qu'il est facultatif de l'​inclure dans notre commande. Si l'​argument est manquant, la valeur par défaut sera utilisée. Par exemple, si on ne spécifie pas l'​argument ''​from''​ pour la fonction ''​seq()'',​ la séquence débutera automatiquement par **1**.   * **Usage**: Explique comment utiliser la fonction, en particulier quels sont les noms et l'​ordre des arguments. Si une valeur est spécifiée pour un argument, ça signifie que c'est la valeur par défaut de cet argument et qu'il est facultatif de l'​inclure dans notre commande. Si l'​argument est manquant, la valeur par défaut sera utilisée. Par exemple, si on ne spécifie pas l'​argument ''​from''​ pour la fonction ''​seq()'',​ la séquence débutera automatiquement par **1**.
Line 785: Line 781:
 ++++ ++++
 ----- -----
-** Obtenir de l’aide sur le web **+=== Obtenir de l’aide sur le web ===
  
 Généralement,​ la meilleure source d'​information sur R provient d'un moteur de recherche (Google, Bing, Yahoo, etc.). Généralement,​ la meilleure source d'​information sur R provient d'un moteur de recherche (Google, Bing, Yahoo, etc.).
Line 812: Line 808:
 ++++ ++++
  
-==== Ressources additionnelles ==== +===== Ressources additionnelles =====
------+
  
-**Aides mémoire (//cheat sheets//)**+=== Aides mémoire (//cheat sheets//)===
  
 [[https://​www.rstudio.com/​resources/​cheatsheets/​|https://​www.rstudio.com/​resources/​cheatsheets/​]] [[https://​www.rstudio.com/​resources/​cheatsheets/​|https://​www.rstudio.com/​resources/​cheatsheets/​]]
Line 822: Line 817:
 ---- ----
  
-**Quelques livres**+=== Quelques livres ​==
  
   * R for Dummies   * R for Dummies
Line 833: Line 828:
 ---- ----
  
-**Quelques sites internet**+=== Quelques sites internet ​===
  
   * [[http://​r4ds.had.co.nz/​index.html|http://​r4ds.had.co.nz/​index.html]]   * [[http://​r4ds.had.co.nz/​index.html|http://​r4ds.had.co.nz/​index.html]]
Line 841: Line 836:
   * [[https://​support.rstudio.com/​hc/​en-us/​categories/​200035113-Documentation|https://​support.rstudio.com/​hc/​en-us/​categories/​200035113-Documentation]]   * [[https://​support.rstudio.com/​hc/​en-us/​categories/​200035113-Documentation|https://​support.rstudio.com/​hc/​en-us/​categories/​200035113-Documentation]]
   * [[http://​cookbook-r.com/​|http://​cookbook-r.com/​]]   * [[http://​cookbook-r.com/​|http://​cookbook-r.com/​]]
 +
 ==== Script R ====  ==== Script R ==== 
 ----- -----
 Pour réviser ou pratiquer cet atelier: Pour réviser ou pratiquer cet atelier:
  
-[[{}{wiki:​workshop01-fr.r }|Télécharger le script R]]+[[{}{ wiki:​workshop01-fr.r }|Télécharger le script R]]