Introduction à la programmation en R Vincent Goulet Introduction à la programma

Introduction à la programmation en R Vincent Goulet Introduction à la programmation en R Vincent Goulet École d’actuariat, Université Laval Avec la collaboration de Laurent Caron Cinquième édition © 2016 Vincent Goulet Cette création est mise à disposition selon le contrat Attribution-Partage dans les mêmes conditions 4.0 International de Creative Commons. En vertu de ce contrat, vous êtes libre de : x partager — reproduire, distribuer et communiquer l’œuvre ; x remixer — adapter l’œuvre ; x utiliser cette œuvre à des fins commerciales. Selon les conditions suivantes : Attribution — Vous devez créditer l’œuvre, intégrer un lien vers le contrat et indiquer si des modifications ont été effectuées à l’œuvre. Vous devez indiquer ces informations par tous les moyens possibles, mais vous ne pouvez suggérer que l’Offrant vous soutient ou soutient la façon dont vous avez utilisé son œuvre. Partage dans les mêmes conditions — Dans le cas où vous modifiez, transformez ou créez à partir du matériel composant l’œuvre originale, vous devez diffuser l’œuvre modifiée dans les même conditions, c’est à dire avec le même contrat avec lequel l’œuvre originale a été diffusée. Code source Code informatique des sections d’exemples Télécharger Code source du document Accéder au dépôt ISBN 978-2-9811416-6-8 Dépôt légal – Bibliothèque et Archives nationales du Québec, 2016 Dépôt légal – Bibliothèque et Archives Canada, 2016 Couverture Le hibou en couverture est un harfang des neiges (Bubo scandiacus), l’emblème aviaire du Québec. Ce choix relève également d’un clin d’œil à la couverture de Braun et Murdoch (2007). Introduction Le système R connaît depuis plus d’une décennie une progression remar- quable dans ses fonctionnalités, dans la variété de ses domaines d’applica- tion ou, plus simplement, dans le nombre de ses utilisateurs. La documen- tation disponible suit la même tangente : plusieurs maisons d’édition pro- posent dans leur catalogue des ouvrages — voire des collections complètes — dédiés spécifiquement aux utilisations que l’on fait de R en sciences na- turelles, en sciences sociales, en finance, etc. Néanmoins, peu d’ouvrages se concentrent sur l’apprentissage de R en tant que langage de programmation sous-jacent aux fonctionnalités statistiques. C’est la niche que nous tâchons d’occuper. Le présent ouvrage se base sur des notes de cours et des exercices utilisés à l’École d’actuariat de l’Université Laval. L’enseignement du langage R est axé sur l’exposition à un maximum de code — que nous avons la prétention de croire bien écrit — et sur la pratique de la programmation. C’est pourquoi les chapitres sont rédigés de manière synthétique et qu’ils comportent peu d’exemples au fil du texte. En revanche, le lecteur est appelé à lire et à exé- cuter le code informatique se trouvant dans les sections d’exemples à la fin de chacun des chapitres. Ce code et les commentaires qui l’accompagnent reviennent sur l’essentiel des concepts du chapitre et les complémentent souvent. Nous considérons l’exercice d’« étude active » consistant à exécuter du code et à voir ses effet comme essentielle à l’apprentissage du langage R. Afin d’ancrer la présentation dans un contexte concret, plusieurs cha- pitres proposent également d’entrée de jeu un problème à résoudre. Nous fournissons des indications en cours de chapitre et la solution complète à la fin. Afin d’être facilement identifiables, ces éléments de contenu se pré- sentent dans des encadrés de couleur contrastante et marqués des symboles , et . Le texte des sections d’exemples est disponible en format électronique sous la rubrique de la documentation par des tiers (Contributed) du site Com- prehensive R Archive Network. On peut obtenir directement l’archive en sui- v vi Introduction vant le lien fournis à la page précédente. Un symbole de lecture vidéo dans la marge (comme ci-contre) indique qu’une capsule vidéo est disponible dans la chaîne YouTube de l’auteur sur  le sujet en hyperlien. Certains exemples et exercices trahissent le premier public de ce docu- ment : on y fait à l’occasion référence à des concepts de base de la théorie des probabilités et des mathématiques financières. Les contextes actuariels demeurent néanmoins peu nombreux et ne devraient généralement pas dé- router le lecteur pour qui ces notions sont moins familières. Les réponses de tous les exercices se trouvent en annexe. En consultation électronique, le numéro d’un exercice est un hyperlien vers sa réponse, et vice versa. On trouvera également en annexe de brèves introductions à l’éditeur de texte GNU Emacs et à l’environnement de développement intégré RStudio, un court exposé sur la planification d’une simulation en R, ainsi que des conseils sur l’administration d’une bibliothèque de packages R. Nous tenons à remercier M. Mathieu Boudreault pour sa collaboration dans la rédaction des exercices et Mme Mireille Côté pour la révision linguis- tique de la seconde édition. Vincent Goulet Québec, avril 2016 Table des matières Introduction v 1 Présentation du langage R 1 1.1 Bref historique 1 1.2 Description sommaire de R 2 1.3 Interfaces 3 1.4 Stratégies de travail 4 1.5 Éditeurs de texte et environnements intégrés 5 1.6 Anatomie d’une session de travail 10 1.7 Répertoire de travail 10 1.8 Consulter l’aide en ligne 11 1.9 Où trouver de la documentation 11 1.10 Exemples 12 1.11 Exercices 13 2 Bases du langage R 15 2.1 Commandes R 16 2.2 Conventions pour les noms d’objets 18 2.3 Les objets R 20 2.4 Vecteurs 24 2.5 Matrices et tableaux 25 2.6 Listes 28 2.7 Data frames 30 2.8 Indiçage 32 2.9 Exemples 35 2.10 Exercices 46 3 Opérateurs et fonctions 49 3.1 Opérations arithmétiques 50 vii viii Table des matières 3.2 Opérateurs 51 3.3 Appels de fonctions 52 3.4 Quelques fonctions utiles 53 3.5 Structures de contrôle 61 3.6 Fonctions additionnelles 62 3.7 Exemples 64 3.8 Exercices 72 4 Exemples résolus 75 4.1 Calcul de valeurs actuelles 76 4.2 Fonctions de masse de probabilité 77 4.3 Fonction de répartition de la loi gamma 79 4.4 Algorithme du point fixe 81 4.5 Suite de Fibonacci 83 4.6 Exercices 85 5 Fonctions définies par l’usager 89 5.1 Définition d’une fonction 91 5.2 Retourner des résultats 91 5.3 Variables locales et globales 92 5.4 Exemple de fonction 92 5.5 Fonctions anonymes 93 5.6 Débogage de fonctions 94 5.7 Styles de codage 95 5.8 Exemples 97 5.9 Exercices 101 6 Concepts avancés 105 6.1 Argument ‘...’ 106 6.2 Fonction apply 107 6.3 Fonctions lapply et sapply 110 6.4 Fonction mapply 112 6.5 Fonction replicate 113 6.6 Classes et fonctions génériques 114 6.7 Exemples 117 6.8 Exercices 126 7 Fonctions d’optimisation 131 7.1 Fonctions d’optimisation et de calcul de racines 132 7.2 Astuce Ripley 133 Table des matières ix 7.3 Pour en savoir plus 134 7.4 Exemples 134 7.5 Exercices 138 8 Générateurs de nombres aléatoires 141 8.1 Générateurs de nombres aléatoires 141 8.2 Fonctions de simulation de variables aléatoires non uniformes 142 8.3 Exemples 144 8.4 Exercices 145 A GNU Emacs et ESS : la base 147 A.1 Mise en contexte 147 A.2 Installation 148 A.3 Description sommaire 149 A.4 Emacs-ismes et Unix-ismes 149 A.5 Commandes de base 151 A.6 Anatomie d’une session de travail (bis) 155 A.7 Configuration de l’éditeur 156 A.8 Aide et documentation 157 B RStudio : une introduction 159 B.1 Installation 159 B.2 Description sommaire 159 B.3 Projets 161 B.4 Commandes de base 162 B.5 Anatomie d’une session de travail (ter) 162 B.6 Configuration de l’éditeur 164 B.7 Aide et documentation 164 C Planification d’une simulation en R 167 C.1 Contexte 167 C.2 Première approche : avec une boucle 168 C.3 Seconde approche : avec sapply 168 C.4 Variante de la seconde approche 172 C.5 Gestion des fichiers 172 C.6 Exécution en lot 174 C.7 Conclusion 174 D Installation de packages dans R 177 Réponses des exercices 181 x Table des matières Chapitre 2 181 Chapitre 3 182 Chapitre 4 183 Chapitre 5 185 Chapitre 6 189 Chapitre 7 191 Chapitre 8 193 Bibliographie 195 Index 197 Tiré de XKCD.com 1 Présentation du langage R Objectifs du chapitre x Comprendre ce qu’est un langage de programmation interprété. x Connaître la provenance du langage R et les principes ayant guidé son développe- ment. x Mettre en place sur son poste de travail un environnement de développement en R. x Démarrer une session R et exécuter des commandes simples. x Utiliser des fichiers de script R de manière interactive. x Créer, modifier et sauvegarder ses propres fichiers de script R. 1.1 Bref historique À l’origine fut le S, un langage pour « programmer avec des données » développé chez Bell Laboratories à partir du milieu des années 1970 par une équipe de chercheurs menée par John M. Chambers. Au fil du temps, le S a connu quatre principales versions communément identifiées par la couleur du livre dans lequel elles étaient présentées : version « originale » (Brown Book ; Becker et Chambers, 1984), version 2 (Blue Book ; Becker et collab., 1988), version 3 (White Book ; Chambers et Hastie, 1992) et version 4 (Green Book ; Chambers, 1998) ; voir aussi Chambers (2000) et Becker (1994) pour plus de détails. Dès la fin des années 1980 et pendant près de vingt uploads/s3/ goulet-introduction-programmation-r.pdf

  • 13
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager