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 [2019/09/03 21:47]
mariehbrice [Atelier 1 : Introduction à 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/​ReferenceScriptWorkshop1%20-%20FR.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 30: Line 27:
 Pour installer R Studio, rendez-vous au http://​www.rstudio.com/​ et sélectionnez R Studio à partir de l’onglet « Products tab ». Cliquez sur la version en source libre (//i.e.// open source) du « R Studio Desktop » et sélectionnez votre plateforme pour le télécharger. Lancez le fichier d’installation afin de compléter l’installation. Encore une fois, vous pouvez garder les paramètres d’installation par défaut. Pour installer R Studio, rendez-vous au http://​www.rstudio.com/​ et sélectionnez R Studio à partir de l’onglet « Products tab ». Cliquez sur la version en source libre (//i.e.// open source) du « R Studio Desktop » et sélectionnez votre plateforme pour le télécharger. Lancez le fichier d’installation afin de compléter l’installation. Encore une fois, vous pouvez garder les paramètres d’installation par défaut.
  
-===== Qu’est-ce que le logiciel R ? ===== +===== Objectifs d'​apprentissage ​===== 
-est un langage de programmation en source libre conçu pour l'​analyse statistique,​ l'​analyse de données ​et la visualisation de données.+  - Comprendre ce que sont R et RStudio 
 +  - Utiliser R comme une calculatrice 
 +  - Manipuler les objets dans R 
 +  - Installer et utiliser les packages R
  
-===== Pourquoi utiliser ​=====+===== 1. Comprendre ce que sont et RStudio ​=====
  
-{{::​operating_systems.png?50|}}  {{::​open_source.png?100|}} {{::​the_why_r_plot_2.png?200|}}+==== 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 et la visualisation de données.
  
-R est en source libre ! Ça signifie que ce logiciel est libre et gratuit et constamment mis à jour et amélioré.+==== Pourquoi utiliser R? ==== 
 +---- 
 +  * 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.
  
-R peut créer des tableaux, produire des graphiques et faire des analyses statistiques,​ le tout au sein du même logiciel. Avec R, il devient inutile d'​utiliser plus d'un logiciel pour la gestion de vos données. Tout est possible avec un seul logiciel !+  * R peut créer des tableaux, produire des graphiques et faire des analyses statistiques,​ le tout au sein du même logiciel. Avec R, il devient inutile d'​utiliser plus d'un logiciel pour la gestion de vos données. Tout est possible avec un seul logiciel !
  
-De plus en plus de scientifiques utilisent R chaque année. Ses capacités sont en augmentation constante et vont continuer dans cette direction au fil des années. Cela signifie également qu'il y a une grande communauté en ligne qui peut vous donner un coup de main lorsque vous rencontrez un problème dans R.+  * De plus en plus de scientifiques utilisent R chaque année. Ses capacités sont en augmentation constante et vont continuer dans cette direction au fil des années. Cela signifie également qu'il y a une grande communauté en ligne qui peut vous donner un coup de main lorsque vous rencontrez un problème dans R.
  
-==== Utiliser ​R Studio ​==== +{{::​operating_systems.png?​100|}} ​   {{::​open_source.png?​200|}} ​    ​{{::​the_why_r_plot_2.png?​400|}} 
------ + 
-\\ +==== 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. ​
 +----
 +**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}}
  
-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. L'​exemple suivant illustre le format du texte qui apparaît typiquement à l'​écran : +L'​exemple suivant illustre le format du texte qui apparaît typiquement à l'​écran : 
 <file rsplus| Illustration du texte dans la console R> <file rsplus| Illustration du texte dans la console R>
 > sortie > sortie
Line 74: Line 82:
 [6] 6 7 8 9 10 [6] 6 7 8 9 10
 </​file>​ </​file>​
 +===== 2. Utiliser R comme une calculatrice ======
  
-==== R comme 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 103: Line 109:
 [1] 8 [1] 8
 </​file> ​   </​file> ​  
-\\+
 ----- -----
 == Défi 2 == == Défi 2 ==
-Répondez à la question d'habileté ​suivante ​dans la console de R Studio ​: 2 + 16 x 24 - 56+Utilisez R pour effectuer l'opération ​suivante : 2 + 16 x 24 - 56
  
 ++Défi 2 : Solution| \\ ''>​ 2 + 16 * 24 - 56\\ ++Défi 2 : Solution| \\ ''>​ 2 + 16 * 24 - 56\\
Line 113: Line 119:
 == Défi 3 == == Défi 3 ==
  
-Répondez à la question d'habileté ​suivante ​dans la console de R Studio. +Utilisez R pour effectuer l'opération ​suivante\\ 
-Faites attention à la priorité des opérations !\\ +2 + 16 x 24 - 56 / ( 2 + 1) - 457  
-2 + 16 x 24 - 56 / ( 2 + 1) - 457+ 
 +//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 127: Line 134:
  
 {{::​arrow_keys.png?​100|Utilisez les flèches pour revenir aux commandes précédentes.}} {{::​arrow_keys.png?​100|Utilisez les flèches pour revenir aux commandes précédentes.}}
-\\+
 ----- -----
 == Défi 4 == == Défi 4 ==
Line 136: Line 143:
 [1] 78.54''​ \\ ou \\ ''>​ pi * 5^2\\  [1] 78.54''​ \\ ou \\ ''>​ pi * 5^2\\ 
 [1] 78.53982''​++ \\ [1] 78.53982''​++ \\
-===== Le concept d’objet dans R ===== 
  
 +===== 3. Manipuler les objets dans R =====
 +
 +==== Objet ====
 +----
 Jusqu’à maintenant, vous avez appris à utiliser R comme calculatrice afin d’obtenir différentes valeurs numériques. Cependant, si vous devez utiliser certaines valeurs ou calculs fréquemment,​ ça peut rapidement devenir ennuyeux de toujours devoir réécrire le même code dans la console. Le concept d’objet permet d’enregistrer certaines étapes afin de vous faire sauver du temps. Jusqu’à maintenant, vous avez appris à utiliser R comme calculatrice afin d’obtenir différentes valeurs numériques. Cependant, si vous devez utiliser certaines valeurs ou calculs fréquemment,​ ça peut rapidement devenir ennuyeux de toujours devoir réécrire le même code dans la console. Le concept d’objet permet d’enregistrer certaines étapes afin de vous faire sauver du temps.
  
-R est un langage de programmation par objet (//​object-oriented programming language//​). Ça signifie qu’on peut allouer ​ un nom à des valeurs qu’on a créées afin de les enregistrer dans un espace de travail. Un objet est composé de trois parties : 1) une valeur d’intérêt,​ 2) un identifiant et 3) l’opérateur d’assignation. 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’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 :+R est un langage de programmation par objet (//​object-oriented programming language//​). Ça signifie qu’on peut allouer ​ un nom à des valeurs qu’on a créées afin de les enregistrer dans un espace de travail. Un objet est composé de trois parties : 1) une valeur d’intérêt,​ 2) un identifiant et 3) l’opérateur d’assignation. ​ 
 + 
 +  - 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’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 151: Line 167:
 #En tapant le nom de l’objet dans la console, R retourne la valeur de l’objet. #En tapant le nom de l’objet dans la console, R retourne la valeur de l’objet.
 moy_x moy_x
-#! [1]  4+[1]  4
 </​file>​ </​file>​
  
Line 166: Line 182:
  
 </​file>​ </​file>​
 +----
 +=== Bonnes pratiques du code R ===
  
-**Truc R**+**Nom**: 
 +  * 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! 
 +  * Évitez les noms d'​objets de fonction qui existe dans (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).
  
-Essayez de choisir des noms explicites pour vos objets. C’est une bonne habitude à prendre et ça vous permet de comprendre rapidement ce qu’un objet représente. Nommer un objet ''​variable''​ ou ''​données''​ n’est pas très informatif ! 
-\\ 
 ----- -----
 == Défi 5 == == Défi 5 ==
Line 194: 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.
-\\ + 
-==== Les différentes ​structures de données ​dans R ====+==== Types de structures de données ​en R ====
 ----- -----
  
Line 204: Line 227:
 Le premier type d’objet est le **vecteur**. C’est un des objets les plus communs dans R. Un vecteur est une entité constituée d’une liste de valeurs semblables. Toutes les valeurs d’un vecteur doivent avoir le même mode (ou classe). Les principaux modes dans R sont **numérique,​ caractère** et **logique**. Les vecteurs numériques sont composés de chiffres seulement. Les vecteurs de caractères sont généralement composés de chaînes de caractères ou d’un mélange de chaînes de caractères et de valeurs numériques et logiques. Il est absolument nécessaire d’utiliser les guillemets ''​%%"​ "​%%''​ afin de délimiter les chaînes de caractères. Les vecteurs logiques sont composés des mots ''​TRUE''​ et ''​FALSE''​ seulement. Un vecteur composé d’un seul élément (généralement une constante) est appelé un vecteur atomique. Le premier type d’objet est le **vecteur**. C’est un des objets les plus communs dans R. Un vecteur est une entité constituée d’une liste de valeurs semblables. Toutes les valeurs d’un vecteur doivent avoir le même mode (ou classe). Les principaux modes dans R sont **numérique,​ caractère** et **logique**. Les vecteurs numériques sont composés de chiffres seulement. Les vecteurs de caractères sont généralement composés de chaînes de caractères ou d’un mélange de chaînes de caractères et de valeurs numériques et logiques. Il est absolument nécessaire d’utiliser les guillemets ''​%%"​ "​%%''​ afin de délimiter les chaînes de caractères. Les vecteurs logiques sont composés des mots ''​TRUE''​ et ''​FALSE''​ seulement. Un vecteur composé d’un seul élément (généralement une constante) est appelé un vecteur atomique.
  
-Avant d’apprendre à créer différents types de vecteurs, regardons comment un vecteur est créé de manière générique. Si vous vous rappelez ce que vous venez tout juste d’apprendre,​ vous devez premièrement avoir une valeur d’intérêt que vous voulez intégrer dans un vecteur et ensuite le lier à un identifiant avec l’opérateur d’assignation (//i.e.// créer un objet). Lorsque vous avez plus d’une valeur dans un vecteur, il est nécessaire d’indiquer au logiciel R qu’il faut regrouper ces valeurs au sein d’un même vecteur. Pour ce faire, il faut utiliser la fonction ''​c''​. Ne vous en faites pas ! Vous allez bientôt apprendre ce qu’est une fonction dans une des sections suivantes. Pour l’instant,​ sachez que vous devez mettre vos valeurs que vous souhaitez avoir dans un vecteur entre parenthèses tout juste après la lettre ''​c''​ dans la console de R. Le format est le suivant : ''​nom.du.vecteur %%<-%% c(valeur1, valeur2, valeur3, ...)''​. La fonction ''​c()''​ signifie combiner ou concaténer. C’est une fonction facile et très utile, alors rappelez-vous en !+Avant d’apprendre à créer différents types de vecteurs, regardons comment un vecteur est créé de manière générique. Si vous vous rappelez ce que vous venez tout juste d’apprendre,​ vous devez premièrement avoir une valeur d’intérêt que vous voulez intégrer dans un vecteur et ensuite le lier à un identifiant avec l’opérateur d’assignation (//i.e.// créer un objet). Lorsque vous avez plus d’une valeur dans un vecteur, il est nécessaire d’indiquer au logiciel R qu’il faut regrouper ces valeurs au sein d’un même vecteur. Pour ce faire, il faut utiliser la fonction ''​c()''​. Ne vous en faites pas ! Vous allez bientôt apprendre ce qu’est une fonction dans une des sections suivantes. Pour l’instant,​ sachez que vous devez mettre vos valeurs que vous souhaitez avoir dans un vecteur entre parenthèses tout juste après la lettre ''​c()''​ dans la console de R. Le format est le suivant : ''​nom.du.vecteur %%<-%% c(valeur1, valeur2, valeur3, ...)''​. La fonction ''​c()''​ signifie combiner ou concaténer. C’est une fonction facile et très utile, alors rappelez-vous en !
  
 Vous connaissez la méthode générique pour créer un vecteur dans R. Regardons maintenant comment générer différents types de vecteurs (//i.e.// de différents modes). Vous connaissez la méthode générique pour créer un vecteur dans R. Regardons maintenant comment générer différents types de vecteurs (//i.e.// de différents modes).
Line 222: Line 245:
 bool_vecteur2 <- c(T, T, F) bool_vecteur2 <- c(T, T, F)
 </​file>​ </​file>​
-\\+
 ----- -----
 == Défi 7 == == Défi 7 ==
Line 240: Line 263:
 > impair > impair
 [1] 1 3 5 7 9 [1] 1 3 5 7 9
-#La réponse que R retourne en inscrivant ''​impair''​ n’est pas directement utilisable+ La réponse que R retourne en inscrivant ''​impair''​ n’est pas directement utilisable
 # (puisqu’elle n’est pas dans la fonction ''​c()''​ et les chiffres ne sont pas entourés de virgules). # (puisqu’elle n’est pas dans la fonction ''​c()''​ et les chiffres ne sont pas entourés de virgules).
  
Line 251: 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.
 ----- -----
-\\+
 Ce que vous avez appris dans la première section est également valide pour les vecteurs : les vecteurs peuvent être utilisés dans des calculs. La seule différence est que, lorsqu’un vecteur a plus d’un élément, l’opération est appliquée à tous les éléments du vecteur. Ce que vous avez appris dans la première section est également valide pour les vecteurs : les vecteurs peuvent être utilisés dans des calculs. La seule différence est que, lorsqu’un vecteur a plus d’un élément, l’opération est appliquée à tous les éléments du vecteur.
 L’exemple suivant clarifie ceci. L’exemple suivant clarifie ceci.
Line 272: Line 295:
 [1]  7 8 9 10 11 [1]  7 8 9 10 11
  
-# Multiplions x par lui-même+# Multiplions x par y
-> x * x +> x * y 
-[1]  ​1 4 9 16 25+[1]  ​6 12 18 24 30
  
-# C’est la même chose que x au carré ! 
-> x^2 
-[1]  1 4 9 16 25 
 </​file>​ </​file>​
 +----
 +Un autre type d’objet couramment utilisé en écologie est le data frame (c-à-d. tableau de données). Un data frame est un groupe de vecteurs de la même longueur (//i.e.// avec le même nombre d’éléments). Les variables sont toujours représentées en colonnes et les observations,​ cas, individus, sites ou répétitions sont toujours représentés en lignes. Un data frame peut être composé de plusieurs modes, mais une colonne doit toujours contenir le même mode. C’est sous ce format que la plupart des données écologiques sont enregistrées. L’exemple suivant présente un jeu de données fictif représentant quatre sites où le pH du sol et le nombre d’espèces ont été mesurés. On y trouve également une colonne de traitement (fertilisé ou non). Regardons plus en détail comment créer un tel tableau de données.
  
-Un autre type d’objet couramment utilisé en écologie est le tableau de données. Un tableau de données est un groupe de vecteurs de la même longueur (//i.e.// avec le même nombre d’éléments). Les variables sont toujours représentées en colonnes et les observations,​ cas, individus, sites ou répétitions sont toujours représentés en lignes. Un tableau de données peut être composé de plusieurs modes, mais une colonne doit toujours contenir le même mode. C’est sous ce format que la plupart des données écologiques sont enregistrées. L’exemple suivant présente un jeu de données fictif représentant quatre sites où le pH du sol et le nombre d’espèces ont été mesurés. On y trouve également une colonne de traitement (fertilisé ou non). Regardons plus en détail comment créer un tel tableau de données. +site_id ​pH_sol ​num_sp ​^ traitement ^
- +
-ID du site pH sol # espece ​^ traitement ^+
 | A1.01 | 5.6 | 17 | Fertilisé | | A1.01 | 5.6 | 17 | Fertilisé |
 | A1.02 | 7.3 | 23 | Fertilisé | | A1.02 | 7.3 | 23 | Fertilisé |
Line 289: Line 309:
 | B1.02 | 6.0 | 17 | Non Fertilisé | | B1.02 | 6.0 | 17 | Non Fertilisé |
  
-N. B. 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. Ainsi, ​# especes ​représente bien '​Nombre d'​espèces',​ mais R préfère la forme '​num_sp'​. Il en va de même pour le contenu du tableau (pas '​Fertilisé',​ mais bien '​Fert'​). ​+N. B. 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. Ainsi, ​num_sp ​représente bien '​Nombre d'​espèces',​ mais R préfère la forme '​num_sp'​. Il en va de même pour le contenu du tableau (pas '​Fertilisé',​ mais bien '​Fert'​). ​
  
-<file rsplus| Création d’un ​tableau de données+<file rsplus| Création d’un ​data frame
 # On commence par créer les vecteurs. # On commence par créer les vecteurs.
 site_id <- c("​A1.01",​ "​A1.02",​ "​B1.01",​ "​B1.02"​) site_id <- c("​A1.01",​ "​A1.02",​ "​B1.01",​ "​B1.02"​)
Line 298: Line 318:
 traitement <- c("​Fert",​ "​Fert",​ "​Non_fert",​ "​Non_fert"​) traitement <- c("​Fert",​ "​Fert",​ "​Non_fert",​ "​Non_fert"​)
  
-# On peut grouper tous ces vecteurs en un tableau de données ​avec la fonction data.frame().+# On peut grouper tous ces vecteurs en un data frame avec la fonction data.frame().
 mon_df <- data.frame(site_id,​ pH_sol, num_sp, traitement) mon_df <- data.frame(site_id,​ pH_sol, num_sp, traitement)
  
Line 304: Line 324:
 mon_df mon_df
 </​file>​ </​file>​
-\\+
 ----- -----
 **Truc R**  ​ **Truc R**  ​
Line 311: Line 331:
 <code rsplus> <code rsplus>
 > dput(mon_df) > dput(mon_df)
-structure(list(site_id ​= structure(1:​4,​ .Label ​= c("​A1.01",​ "​A1.02",​ "​B1.01",​ "​B1.02"​), class = "​factor"​), pH_sol = c(5.6, 7.3, 4.1, 6), num_sp = c(17, 23, 15, 7), traitement = structure(c(1L1L, 2L, 2L), .Label = c("​Fert",​ "​Non_fert"​)class = "factor")), class = "​data.frame",​ row.names = c(NA, -4L))+structure(list(site_id = c("​A1.01",​ "​A1.02",​ "​B1.01",​ "​B1.02"​ 
 +), pH_sol = c(5.6, 7.3, 4.1, 6), num_sp = c(17, 23, 15, 7), traitement = c("​Fert"​ 
 +"​Fert",​ "​Non_fert",​ "Non_fert")), class = "​data.frame",​ row.names = c(NA, -4L))
  
 # Il est possible de reconstruire le data frame initial (avec certaines métadonnées associées, telles que la classe des variables par exemple) en copiant-collant la sortie précédente # Il est possible de reconstruire le data frame initial (avec certaines métadonnées associées, telles que la classe des variables par exemple) en copiant-collant la sortie précédente
-> structure(list(site_id ​= structure(1:​4,​ .Label ​= c("​A1.01",​ "​A1.02",​ "​B1.01",​ "​B1.02"​), ​class = "​factor"​),​ +> structure(list(site_id = c("​A1.01",​ "​A1.02",​ "​B1.01",​ "​B1.02"​ 
-               pH_sol = c(5.6, 7.3, 4.1, 6), +), pH_sol = c(5.6, 7.3, 4.1, 6), num_sp = c(17, 23, 15, 7), traitement = c("​Fert"​ 
-               num_sp = c(17, 23, 15, 7), +"​Fert",​ "​Non_fert",​ "Non_fert")), class = "​data.frame",​ row.names = c(NA, -4L))
-               traitement = structure(c(1L1L, 2L, 2L), .Label = c("​Fert",​ "​Non_fert"​)class = "factor")), +
- class = "​data.frame",​ row.names = c(NA, -4L))+
  
 </​code>​ </​code>​
 +----
 +Les autres types d’objets pour stocker des données qu’on retrouve dans R sont les matrices, les tableaux (//i.e.// array en anglais) et les listes. Une matrice est très similaire à un data frame à l’exception que toutes les cellules de la matrice doivent être du même mode. Un array est similaire à une matrice, mais peut avoir plus de deux dimensions. Les arrays sont surtout utilisés pour des calculs avancés tels que des simulations numériques et des tests de permutations. Une liste est un groupement de plusieurs types d’objets différents. Par exemple, une liste pourrait comprendre un vecteur, un tableau de données et une matrice au sein du même objet.
  
-\\ +==== Indexer des objets dans R ==== 
-Les autres types d’objets pour stocker des données qu’on retrouve dans R sont les matrices, les tableaux (//i.e.// array en anglais) et les listes. Une matrice est très similaire à un tableau de données à l’exception que toutes les cellules de la matrice doivent être du même mode (le plus souvent numérique). Un tableau est similaire à une matrice, mais peut avoir plus de deux dimensions. Ces tableaux sont surtout utilisés pour des calculs avancés tels que des simulations numériques et des tests de permutations. Une liste est un groupement de plusieurs types d’objets différents. Par exemple, une liste pourrait comprendre un vecteur, un tableau de données et une matrice au sein du même objet. +---- 
- +=== Indexer un vecteur===
-===== Indexer des objets dans R =====+
  
 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 357: Line 378:
  
 # Nous pouvons procéder de même sur les vecteurs de caractère # Nous pouvons procéder de même sur les vecteurs de caractère
-#Extraire tous les éléments correspondant exactement à « bleu » du vecteur de caractères. +# Extraire tous les éléments correspondant exactement à « bleu » du vecteur de caractères. 
-#Prenez note de l’utilisation du double signe d’égalité ==.+# Prenez note de l’utilisation du double signe d’égalité ==.
 > car_vecteur[car_vecteur == "​bleu"​] > car_vecteur[car_vecteur == "​bleu"​]
 [1]  "​bleu"​ [1]  "​bleu"​
  
 </​file>​ </​file>​
-\\ 
 ----- -----
 == Défi 8 == == Défi 8 ==
Line 407: Line 427:
 ++++ ++++
 ----- -----
-\\ +=== Indexer un data frame === 
-L’indexation des tableaux de données ​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]''​. ​\\ + 
-Voici quelques exemples d’indexation de tableaux de données. Prenez note que les quatre premières opérations sont également valides pour les matrices.+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 : 
 + 
 + ''​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.
  
-<file rsplus| Indexer un tableau de données+<file rsplus| Indexer un data frame
-# Réutilisons le tableau de données ​créé précédemment (mon_df) +# Réutilisons le data frame créé précédemment (mon_df) 
-# Extrayons la première ligne du tableau de données.+# Extrayons la première ligne du data frame.
 > mon_df[1, ] > mon_df[1, ]
  
-# Extrayons la troisième colonne du tableau de données.+# Extrayons la troisième colonne du data frame.
 > mon_df[, 3] > mon_df[, 3]
 # Notez qu'un index vide sélectionne toutes les valeurs # Notez qu'un index vide sélectionne toutes les valeurs
  
-# Extrayons le deuxième élément de la quatrième colonne du tableau de données.+# Extrayons le deuxième élément de la quatrième colonne du data frame.
 > mon_df[2, 4] > mon_df[2, 4]
  
-# Extrayons les lignes 2 à 4 du tableau de données+# Extrayons les lignes 2 et 4 du data frame
-> mon_df[c(2:4), ]+> mon_df[c(2,4), ]
  
 # Extrayons la colonne « site_id » en référant directement à son nom. # Extrayons la colonne « site_id » en référant directement à son nom.
Line 436: Line 460:
 > mon_df[,​c("​site_id","​pH_sol"​)] > mon_df[,​c("​site_id","​pH_sol"​)]
 </​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 502: Line 525:
 ++++ ++++
  
-===== Les fonctions ​===== +==== Les fonctions ==== 
 +----
 La plupart du temps, vous devrez utiliser des fonctions dans R pour effectuer les tâches voulues. La plupart du temps, vous devrez utiliser des fonctions dans R pour effectuer les tâches voulues.
  
 Les fonctions sont des outils qui permettent de simplifier l'​utilisation de R. Elles permettent d'​exécuter des opérations sur des objets sans avoir à spécifier chaque étape. Les fonctions sont des codes pré-existants dans R qui sont exécutés lorsque nécessaire. Ça permet de sauver du temps, car il n'est pas nécessaire de créer un code et de l'​écrire à chaque fois qu'on doit l'​utiliser. Les fonctions sont des outils qui permettent de simplifier l'​utilisation de R. Elles permettent d'​exécuter des opérations sur des objets sans avoir à spécifier chaque étape. Les fonctions sont des codes pré-existants dans R qui sont exécutés lorsque nécessaire. Ça permet de sauver du temps, car il n'est pas nécessaire de créer un code et de l'​écrire à chaque fois qu'on doit l'​utiliser.
  
-Pour exécuter une fonction, vous devez l'​__appeler__. L'​appel d'une fonction est un raccourci vers le code de la fonction. Pour ce faire, il est nécessaire de spécifier des valeurs d'​entrée qu'on nomme **arguments** (ou quelquefois paramètres). Après avoir lancé une fonction, R retourne une **valeur de rerour** dans la console. La commande doit être structurée proprement en suivant les "​règles de grammaire"​ du langage R (//i.e.// la syntaxe).+Pour exécuter une fonction, vous devez l'​__appeler__. L'​appel d'une fonction est un raccourci vers le code de la fonction. Pour ce faire, il est nécessaire de spécifier des valeurs d'​entrée qu'on nomme **arguments** (ou quelquefois paramètres). Après avoir lancé une fonction, R retourne une **valeur de retour** dans la console. La commande doit être structurée proprement en suivant les "​règles de grammaire"​ du langage R (//i.e.// la syntaxe).
  
 Un appel de fonction est structuré de la manière suivante : le nom de la fonction suivi de parenthèses ''​( )''​. On insère les arguments séparés par des virgules à l'​intérieur des parenthèses : Un appel de fonction est structuré de la manière suivante : le nom de la fonction suivi de parenthèses ''​( )''​. On insère les arguments séparés par des virgules à l'​intérieur des parenthèses :
Line 519: 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 532: Line 554:
  
 La sortie, qui apparaît sur la dernière ligne, est la **valeur de retour** de la fonction. Dans ce cas-ci, c'est la somme de ''​a''​ et ''​b'',​ soit 8.\\ La sortie, qui apparaît sur la dernière ligne, est la **valeur de retour** de la fonction. Dans ce cas-ci, c'est la somme de ''​a''​ et ''​b'',​ soit 8.\\
-\\+
 ----- -----
 == Défi 11 == == Défi 11 ==
Line 571: Line 593:
 ++++ ++++
 ----- -----
-\\+=== 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 582: Line 604:
 > log(x = 8, base = 2) > log(x = 8, base = 2)
 </​file>  ​ </​file>  ​
-\\ 
 ----- -----
 == Défi 12 == == Défi 12 ==
Line 616: Line 637:
 ++++ ++++
 ----- -----
-\\ 
  
 À titre de référence,​ voici une liste de fonctions couramment utilisées dans R : À titre de référence,​ voici une liste de fonctions couramment utilisées dans R :
Line 627: Line 647:
 </​code>​ </​code>​
  
-===== Les paquets ​=====+===== 4. Installer et utiliser les packages R =====
  
-Les paquets ​(//packages// en anglais) sont des regroupements de fonctions et de jeux de données partageant un thème similaire, //e.g.// statistiques,​ analyse spatiale, visualisation...+==== Package ==== 
 +---- 
 +Les packages ​(//paquets// pour être rigoureux) sont des regroupements de fonctions et de jeux de données partageant un thème similaire, //e.g.// statistiques,​ analyse spatiale, visualisation...
  
-Tout le monde peut développer des paquets ​et les rendre disponibles aux autres utilisateurs de R.+Tout le monde peut développer des packages ​et les rendre disponibles aux autres utilisateurs de R.
  
-Les paquets ​sont généralement disponibles via le Comprehensive R Archive Network (CRAN)[[http://​cran.r-project.org/​web/​packages/​]].+Les packages ​sont généralement disponibles via le //Comprehensive R Archive Network// (CRAN)[[http://​cran.r-project.org/​web/​packages/​]].
  
-Actuellement,​ plus de 5877 paquets ​sont disponibles librement.+Actuellement,​ plus de 16000 packages ​sont disponibles librement.
  
-Pour installer des paquets ​dans R, il suffit d'​utiliser la fonction ''​install.packages()''​ :+Pour installer des packages ​dans R, il suffit d'​utiliser la fonction ''​install.packages()''​ :
  
-<code rsplus| Installation d'​un ​paquet>+<code rsplus| Installation d'​un ​package>
 > install.packages("​ggplot2"​) > install.packages("​ggplot2"​)
 </​code>​ </​code>​
  
-Il est nécessaire d'​installer un paquet ​une seule fois, même si des mises à jours régulières sont recommandées. Cependant, pour utiliser une fonction se trouvant au sein d'​un ​paquet, il ne suffit pas de simplement installer le paquet. Il faut également utiliser la fonction ''​library()''​ à chaque début de session R pour "​charger"​ le paquet. Voici un exemple qui utilise la fonction ''​qplot()'' ​ du paquet ​**ggplot2** que l'on vient tout juste d'​installer.+Il est nécessaire d'​installer un package ​une seule fois, même si des mises à jours régulières sont recommandées. Cependant, pour utiliser une fonction se trouvant au sein d'​un ​package, il ne suffit pas de simplement installer le package. Il faut également utiliser la fonction ''​library()''​ à chaque début de session R pour "​charger"​ le package. Voici un exemple qui utilise la fonction ''​qplot()'' ​ du package ​**ggplot2** que l'on vient tout juste d'​installer.
  
 <code rsplus> <code rsplus>
Line 649: Line 671:
 </​code>​ </​code>​
  
-Le paquet ​a été installé correctement,​ mais il n'a pas été chargé. Par conséquent,​ l'​exécution de ce code cause l'​erreur suivante :+Le package ​a été installé correctement,​ mais il n'a pas été chargé. Par conséquent,​ l'​exécution de ce code cause l'​erreur suivante :
  
 ''​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 660: 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>​
  
-===== Obtenir de l'aide et ressources supplémentaires ===== 
  
-==== Obtenir de l’aide ​avec les fonctions ​====+==== Obtenir de l’aide ====
 ----- -----
 +
 +=== 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 687: Line 711:
 {{::​sequence_help.png?​400|}}\\ {{::​sequence_help.png?​400|}}\\
  
-**Note** : les résultats d'une recherche dépendent des paquets ​installés sur votre ordinateur.+**Note** : les résultats d'une recherche dépendent des packages ​installés sur votre ordinateur.
  
 Les résultats de la recherche comportent deux colonnes : Les résultats de la recherche comportent deux colonnes :
-  * À gauche, on retrouve les noms du paquet ​et de la fonction sous le format : ''​**nom_du_paquet**:://​nom_de_la_fonction//''​.+  * À gauche, on retrouve les noms du package ​et de la fonction sous le format : ''​**nom_du_package**:://​nom_de_la_fonction//''​.
   * À droite, on retrouve la description des fonctions.   * À droite, on retrouve la description des fonctions.
  
 Généralement,​ les fonctions portent un nom qui est représentatif de ce qu'​elles font. C'est plus facile de les trouver. Rappelez-vous de ceci si jamais vous décidez d'​écrire vos propres fonctions ! Généralement,​ les fonctions portent un nom qui est représentatif de ce qu'​elles font. C'est plus facile de les trouver. Rappelez-vous de ceci si jamais vous décidez d'​écrire vos propres fonctions !
  
-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 paquet ​''​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 paquet ​''​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 ===
  
 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 714: 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 paquet ​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 723: Line 749:
   * **Voir aussi**: Une liste de fonctions connexes pouvant parfois être utiles, spécialement lorsqu'​on cherche la fonction appropriée à nos besoins.   * **Voir aussi**: Une liste de fonctions connexes pouvant parfois être utiles, spécialement lorsqu'​on cherche la fonction appropriée à nos besoins.
   * **Exemples**:​ Quelques exemples d'​utilisation de la fonction.   * **Exemples**:​ Quelques exemples d'​utilisation de la fonction.
-\\+
 ----- -----
 == Défi 13 == == Défi 13 ==
Line 754: Line 780:
 </​code>​ </​code>​
 ++++ ++++
- 
-==== 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 766: Line 791:
   * Apprenez à lire les discussions sur les forums. Il y a de fortes chances que d'​autres utilisateurs aient eu le même problème avant vous. Créez-vous un compte sur les forums où les questions concernant R sont souvent posées comme [[http://​stats.stackexchange.com|stackexchange]].   * Apprenez à lire les discussions sur les forums. Il y a de fortes chances que d'​autres utilisateurs aient eu le même problème avant vous. Créez-vous un compte sur les forums où les questions concernant R sont souvent posées comme [[http://​stats.stackexchange.com|stackexchange]].
   * N'​hésitez pas à faire des recherches avec des mots-clés différents!   * N'​hésitez pas à faire des recherches avec des mots-clés différents!
-\\+
 ----- -----
 == Défi 14 == == Défi 14 ==
Line 783: Line 808:
 ++++ ++++
  
-==== Quelques livres de référence utiles ​==== +===== Ressources additionnelles =====
------+
  
-Dalgaard, P. - Introductory Statistics with R.\\ +=== Aides mémoire (//cheat sheets//​)===
-Zuur, A.F., Ieno, E.N. & Meesters, E. - A Beginner'​s Guide to R.\\ +
-Crawley, M. - The R Book.\\ +
-Everitt, B.S. & Hothorn, T. - A Handbook of Statistical Analyses Using R.\\ +
-Kabacoff, R.I. - R in Action.+
  
-==== Quelques ​sites web pertinents ==== +[[https://​www.rstudio.com/​resources/​cheatsheets/​|https://​www.rstudio.com/​resources/​cheatsheets/​]] 
------ + 
-http://stats.stackexchange.com\\ +Ces aides-mémoires sont aussi disponible directement dans RStudio (Help -> Cheat Sheets) 
-https://www.zoology.ubc.ca/~schluter/​R/​ \\ +---- 
-http://www.statmethods.net\\ + 
-http://www.rseek.org/ \\ +=== Quelques ​livres ​== 
-http://www.cookbook-r.com/ \\ + 
-http://​cran.r-project.org/​doc/​contrib/​Baggott-refcard-v2.pdf ​\\ +  * R for Dummies 
-ftp://​cran.r-project.org/pub/R/​doc/​contrib/​Herve-Aide-memoire-statistique.pdf+  * A Handbook of Statistical Analyses using R 
 +  * R in Action 
 +  * Introductory Statistics in R 
 +  * A Beginner'​s Guide to R 
 +  * The R Book 
 + 
 +---- 
 + 
 +=== Quelques sites internet === 
 + 
 +  * [[http://r4ds.had.co.nz/index.html|http://r4ds.had.co.nz/index.html]] 
 +  * [[https://cran.r-project.org/doc/​manuals/​r-release/​R-intro.html|https://cran.r-project.org/doc/manuals/r-release/​R-intro.html]] 
 +  * [[http://​cran.r-project.org/​doc/​contrib/​Baggott-refcard-v2.pdf|http://​cran.r-project.org/​doc/​contrib/​Baggott-refcard-v2.pdf]] 
 +  * [[http://​statmethods.net/​|http://​statmethods.net/​]] 
 +  * [[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/​]]
  
 ==== Script R ====  ==== Script R ==== 
Line 806: Line 841:
 Pour réviser ou pratiquer cet atelier: Pour réviser ou pratiquer cet atelier:
  
-[[{}{ :referencescriptworkshop1.r }|Télécharger le script R]]+[[{}{ wiki:workshop01-fr.r }|Télécharger le script R]]