Mohamed-Gouskir-Cours-R-compressé.pdf
Document Details
Full Transcript
30/09/2024 1 2 Plan Programmation en R...
30/09/2024 1 2 Plan Programmation en R 1. Généralités 2. Objets et Opérations 3. Les fonctions 4. Les graphiques 5. Graphiques avec ggplot2 6. Structures de contrôle et Itérations 7. Autour des lois de probabilités Mohamed GOUSKIR 8. Outils graphiques en statistique Université Sultan Moulay Slimane Ecole Nationale des Sciences Appliquées Béni Mellal 9. Inférence statistique Filière : Intelligence Artificielle et CyberSécurité - IACS email : [email protected] M. GOUSKIR - Programmation en R- FI IACS 24-25 3 4 Historique Qu’est-ce que R ? 1976 développement de S par John Chambers dans les laboratoires Bell R est un logiciel de développement scientifique spécialisé dans 1980s développement de S-PLUS au AT&T Bell Labs le calcul et l’analyse statistique 1993 développement de R sur le modèle de S par Robert Gentleman et Ross Ihaka à l’université d’Auckland Il est à la fois un langage informatique et un environnement de 3 3 1995 dépôts des codes sources sous licence GNU/GPL travail 1997 élargissement du groupe Les commandes sont exécutées grâce à des instructions codées 2002 la fondation R dépose ses statuts sous la présidence de Gentleman et Ihaka dans un langage relativement simple 2011 première version public de R-studio M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 1 30/09/2024 5 6 Principales fonctionnalités Qualités de R Logiciel multiplateforme (Window, Mac OS X et Linux) 1. Gestionnaire de données Logiciel libre et gratuit Lecture, manipulation, stockage 2. Algèbre linéaire Syntaxe intuitive et compact Opérations classiques sur vecteurs, tableaux et matrices Richesse des modules en statistique (19000 extensions à ce 3. Statistique et analyse de données jours) 3 3 Dispose d’un grand nombre de méthodes d’analyse de données Développement du logiciel très actif et communauté 4. Moteur de sorties graphiques d’utilisateurs en nette augmentation Sorties écran ou fichier Logiciel avec d’excellentes capacités graphiques 5. Système de modules Rapidité d’exécution Alimenté par la communauté R est utilisé dans tous les secteurs scientifiques M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 7 8 Domaines Défauts de R ! ! ! ! Statistiques (statistiques descriptives, inférentielles, modélisation, etc.) La documentation de référence et les principales ressources sont en Machine learning (apprentissage automatique, réseaux de neurones, arbres anglais décisionnels, etc.) Manipulation de données (nettoyage, transformation, agrégation, etc.) Aide intégrée succincte Visualisation des données (graphiques statiques et interactifs, tableaux de Il n’existe pas d’interface graphique pour R équivalente à celle bord, etc.) 3 3 d’autres logiciels commerciaux Biostatistique et génétique (analyses biomédicales, génétiques, et bioinformatiques) Personnalisation des graphiques un peu lourde Finances et économie (modélisation financière, analyses économiques) La courbe d’apprentissage peut être un peu «raide» Séries temporelles et prévision (modèles ARIMA, modélisation des séries temporelles) M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 2 30/09/2024 9 10 Les concurrents Installation 1. Algèbre linéaire Installation de R Matlab (Mathworks) : la référence sous Windows : http://cran.r-project.org/bin/windows/ Scilab (INRIA) : l’alternative libre sous Mac OS X : http://cran.r-project.org/bin/macosx/ Octave (GNU) : l’alternative open source sous Linux : à installer depuis le terminal (dépend des 2. Statistique distributions) SAS (SAS Inc.) : la référence 3 3 SPSS (IBM) : le concurrent Le numéro de la version installée (4.3.1/4.4.1) est donné dans le R (GNU) : l’alternative open source message d’accueil au lancement de R 3. Calcul symbolique Le premier chiffre de ce numéro correspond aux mises à jour «majeures» du logiciel (Rares mais importantes) Mathematica (Wolfram) : la référence Maple (Maplesoft) : la référence aussi Installation de RStudio Maxima (GNU) : l’alternative open source M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 Prise en main 11 12 Interface de R L’interface graphique de R est très limitée en comparaison avec d’autres logiciels de statistique standards L’avantage est double : l’approche est pédagogique et l’outil Interface de R et RStudio est trés efficace lorsqu’on domine le langage R Mode console Mode script Organiser un projet R Aide M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 3 30/09/2024 13 14 RStudio : installation et interface RStudio Installation : RStudio est un environnement de développement intégré libre http://www.rstudio.com/products/rstudio/download/ et gratuit Il fonctionne sous toutes les plateformes Il complète R et fournit : un éditeur de script avec coloration syntaxique et auto-complétion des fonctionnalités pratiques d’édition et d’exécution du code un affichage simultané du code, de la console R, des fichiers, des graphiques... (aide à comprendre la logique de R) Il intègre de base divers outils Il est en développement actif et de nouvelles fonctionnalités sont ajoutées régulièrement Son principal "défaut" est d’avoir une interface uniquement anglophone M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 15 16 Interface de RStudio Conseil L’interface de RStudio est divisée en quatre quadrants : 1. Le quadrant supérieur gauche est dédié aux fichiers de travail 2. Le quadrant inférieur gauche correspond à la console (R) Un conseil en tout début de formation : codez, 3. Le quadrant supérieur droit permet de connaître : codez et codez toujours ! ! ! la liste des objets en mémoire ou environnement de travail (onglet Environment) La seule et unique manière d’apprendre R et l’historique des commandes saisies dans la console (onglet History) de coder, faire des erreurs, les comprendre 4. Le quadrant inférieur droit affiche la liste des fichiers du répertoire de travail (onglet Files) et du coup de s’en souvenir les graphiques réalisés (onglet Plots) la liste des extensions disponibles (onglet Packages) l’aide en ligne (onglet Help) un Viewer pour visualiser certains types de graphiques M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 4 30/09/2024 Mode console : l’invite de commandes 17 18 Mode script L’invite de commandes (prompt en anglais) signifie que R est disponible Le principal problème du mode console est qu’une et en attente de votre prochaine commande fois qu’une commande est tapée, elle est «perdue» L’utilisation de la console est restreinte aux petites Pratique commandes «jetables», le plus souvent utilisées comme R est une machine à calculer test 2 + 3 ; 8 - 10 ; 5 * 19 ; -6/12 ; 0,5 ; cos(pi) Les commandes seront stockées dans un fichier à part (script), qu’on pourra facilement ouvrir, éditer et R nous propose de compléter une commande incomplète 5 * exécuter Les espaces autour des opérateurs n’ont pas d’importance 12+8 12 + 8 12 + 8 Pratique - Ouvrir la fenêtre R Script Utiliser les flèches Haut et Bas pour naviguer dans - Tapez sur la première ligne la commande : 2 + 3 l’historique des commandes tapées précédemment (ou - Enregister le script : script1.R l’onglet History) M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 19 Mode script : ajouter des commentaires 20 Mode script : soumettre des commandes à R 1. Exécuter la ligne sur laquelle se trouve votre curseur en Un commentaire est une ligne ou une partie de ligne qui sera cliquant sur l’icône Run ou pressez simulatément les ignorée par R touches CTRL et Entrée Pratique pour commenter le code : décrire les étapes du 2. Sélectionner plusieurs lignes contenant des commandes et travail, les choses à se rappeler, les questions en suspens, etc les exécuter toutes en une seule fois de la même manière 3. Exécuter d’un coup l’intégralité de votre fichier en cliquant Un commentaire sous R commence par un ou plusieurs sur l’icône Source symboles # Tout ce qui suit ce symbole jusqu’à la fin de la ligne est Pratique considéré comme un commentaire 2 + 3 ; sqrt(9) ; "Bonjour" 2 ^ 3 ; 25/7 ; 25 %/% 7 Pratique 25 / 7 # divis io n euclidienne de 25 par 7 25 %/% 7 # divis io n euclidienne (entière) de 25 par 7 M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 5 30/09/2024 21 Organiser un projet R : répertoire de travail 22 Mode script : ajouter des commentaires Il est important de documenter ses fichiers au fur et à mesure Le répertoire de travail correspond au répertoire dans lequel R est Utiliser les commentaires pour créer des sections au sein de votre actuellement en train de s’exécuter script et naviguer plus rapidement Le répertoire de travail actuel est affiché en gris à la droite du mot Faire suivre une ligne de commentaires d’au moins 4 signes moins Console (----) Les fonctions getwd() et setwd() permettent de connaître ou modifier le répertoire de travail Pratique # Addition de deux nombres ---- Pratique 2 + 3 getwd() setwd("/.../...") # Multiplication de deux nombres ---- 5 * 6 Le répertoire de travail peut aussi être modifié via le menu Session > SetWorking Directory Le symbole dièse orange permet de se déplacer au sein du script M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 23 Création d’un nouveau projet 24 Les projets dans RStudio Sélectionner l’option New project dans le menu Projects RStudio dispose d’une fonctionnalité pratique pour Choisir l’option New Directory (nouveau répertoire) organiser son travail en différents projets Choisir Empty project pour créer un projet vide Tous les fichiers relatifs à un même projet (données, Indiquer le nom du projet, qui sera également le nom du scripts, rapports automatisés) seront réunis dans un répertoire qui sera créé pour stocker les données du projet répertoire dédié Indiquer le répertoire parent (répertoire dans lequel le Le menu Projects est accessible via une icône dédiée située répertoire de projet sera créé) tout en haut à droite Cliquer sur Create Project M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 6 30/09/2024 25 26 Fonctionnement par défaut Options du projet Le nom du projet est affiché en haut à droite à côté de l’icône projets Une nouvelle session R est exécutée Il est possible de personnaliser plusieurs options d’un Le répertoire de travail de R est défini comme étant le répertoire du projet via le menu Projects > Projects options projet On retient 3 options principales de l’onglet General : Les objets créés (sauvegardés dans le fichier.Rdata ) lors d’une 1. Charger en mémoire les objets déjà sauvegardés à précédente séance de travail sont chargés en mémoire l’ouverture du projet L’historique des commandes saisies lors des précédentes séances de 2. Sauvegarder les différents objets en mémoire à la travail sont chargées dans l’onglet History fermeture du projet (dans le fichier.Rdata) Les scripts ouverts lors d’une précédente séance de travail sont automatiquement ouverts 3. Sauvgarder l’historique des commandes à la fermeture du projet Lorsqu’on ouvre un projet RStudio, on revient à l’état de notre projet tel qu’il était la dernière fois que l’on a travaillé dessus M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 27 28 Organiser un projet Aide en ligne R dispose d’une aide en ligne complète, mais dont l’usage n’est Créer un répertoire par projet (à nommer projet1 pour votre pas simple premier projet) Aide intégralement en anglais et son organisation prend du temps Pour chaque répertoire projet, créer : à être maîtrisée un répertoire Data La fonction help.start() permet d’afficher le sommaire de l’aide un répertoire Scripts en ligne La fonction help() ou? permet d’afficher la page d’aide un répertoire Rapports Pratique un répertoire Documentation help.start() help(help) help() un répertoire Extensions : contient les help(sort) ?sqrt help("+") extensions installées La page d’aide correspondante s’affichera sous l’onglet Help M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 7 30/09/2024 29 30 Savoir trouver de l’aide Sections d’une page d’aide Deux situations se présentent : Section Contenu 1. On connaît le nom de la fonction qu’on souhaite utiliser mais on ne Description donne un résumé de ce que fait la fonction sait pas comment Usage indique la manière de l’utiliser 2. On ne connaît pas le nom de la fonction mais on sait ce qu’on Arguments détaille tous les arguments possibles et leur signification souhaite faire Value indique la forme du résultat renvoyé par la fonction Aide sur une fonction connue : cas le plus simple et c’est assez intuitif Details apporte des précisions sur le fonctionnement de la fct. Pratique See Also renvoie vers d’autres fonctions semblables ou liées References des références bibliographiques ou des URL associées help(plo t) ?var help(matrix) ?mean Examples série d’exemples d’utilisation M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 31 32 Aide sur une fonction inconnue Aide sur une fonction inconnue Aide sur une fonction encore inconnue : La fonction apropos() permet de lister les noms des fonctions qui contiennent une partie du nom de la fonction C’est le cas le plus fréquent pour un débutant sur R Pratique L’idée est de rechercher toutes les fonctions R associées un à mot clé (en anglais) apropos("matri") apropos("plot") La fonction help.search() ou? ? permet de rechercher un mot clé dans le contenu de l’aide La fonction example() permet d’exécuter les exemples Pratique Pratique help.search("regression") ? ? lo g is tic example(mean) example(boxplot) M. GOUSKIR - Programmation en R- FI IACS 24-25 M. GOUSKIR - Programmation en R- FI IACS 24-25 8 30/09/2024 Packages Présentation R étant un logiciel libre,les utilisateurs contribuent au développement du logiciel en lui ajoutant des fonctionnalités supplémentaires sous forme de (packages) 1 Présentation Les packages sont des jeux de fonctions, accompagnés de fichiers d’aides et parfois de jeux de données 2 Installer et charger des packages Les fonctions de base, chargé automatiquement à l’ouverture de R, sont contenues dans un package nommé base 3 Quelques packages utiles Pratique getOption("defaultPackages") # l i s t e des packages chargés en mémoire par défaut Présentation Evolution du nombre de packages Il existe un très grand nombre d’extensions (plus de 11000) Ils sont diffusées par le réseau CRAN (Comprehensive R Archive Network) Liste des packages : http://cran.r-project.org/web/packages/ Il existe plusieurs méthodes pour repérer un package : par date de publication : date of publication par nom : name par thème : task views Evolution exponentielle du nombre de packages 9 30/09/2024 Installer et charger des packages Charger des packages L’installation d’un package se fait par la fonction Le chargement d’un package doit se faire à chaque session où il doit install.packages être utilisé Le package installé est chargé avec la fonction library Pratique On peut alors utiliser les fonctions du package, consulter leur page d’aide, accéder à leur jeux de données, etc. install.packages("foreign", dep = TRUE) Pratique library(foreign) L’option dep=TRUE indique à R de télécharger et d’installer Cocher le package "questionr" dans l’onglet Packages tous les package dont dépend le package choisi On peut également cliquer sur Install dans l’onglet Packages La fonction install.packages cherche le package sur internet et Pratique l’installe en local sur le disque dur La fonction library lit les informations du package sur le disque dur et les met à disposition de R Installer le package "questionr" depuis l’onglet Packages Désinstaller et mettre à jour des packages Quelques packages utiles La fct. remove.package permet de désinstaller un package Pratique Package Description remove.packages("foreign") questionr Set of functions to make the processing and analysis of Les packages évoluent avec le temps. Il est nécessaire de surveys easier mettre à jour régulièrement ses packages (une fois par foreign Functions for reading and writing data mois) ggplot2 An implementation of the grammar of graphics in R Utiliser la fonction update.packages pour mettre à jour l’ensemble des packages installés dplyr A fast, consistent tool for working with data frame like objects On peut aussi cliquer sur Update dans l’onglet Packages haven Import foreign statistical formats into R Pratique update.packages() Rcmdr RCommander 10 30/09/2024 Fonctions Structure d’une fonction Une fonction se caractérise de la manière suivante : elle a un nom, accepte des arguments, retourne un résultat et peut effectuer une action La syntaxe d’appel d’une fonction est simple et intuitive : 1 Structure d’une fonction nom_fonction(argument1 = val1, argument2 = val2,...) 2 Arguments d’une fonction 3 Autocomplétion d’une fonction Les arguments d’une fonction sont indiqués entre parenthèses, juste après son nom En général, les premiers arguments sont des données servant au calcul et les suivants des paramètres influant sur ce calcul 43 Interprétation des arguments : fonction format Arguments d’une fonction Affichons le fichier d’aide associé Pratique Pratique ?format taille