# Prise en main de R à l'aide de RStudio contact@prabi.fr ## Remerciements ``` If you use the computing resources of LBBE / PRABI, thank you to make it appear in your scientific publications by including the following sentence: "This work was performed using the computing facilities of the CC LBBE/PRABI." ``` ## Prérequis - pas de connaissance de base sur les lignes de commandes et R - suivre la vidéo d'introduction ci-dessous :

RStudio IDE Overview

## Pour les fayots qui veulent prendre de l'avance en R en totale autonomie ! ### Apprendre R avec R - à l'aide du package `swirl` : ```R install.packages("swirl") library(swirl) swirl() ``` Une liste plus importante de tutoriels swirl est disponible à l'adresse suivante : http://swirlstats.com/scn/title.html - à l'aide du package `learnr` : ```R install.packages("learnr") learnr::run_tutorial("ex-setup-r","learnr") ```` ### Selection de sites webs, blog - https://www.r-project.org/ - https://thinkr.fr/ - https://www.r-bloggers.com/ > pour les tweetos le hashtag **#rstat** - https://swcarpentry.github.io/r-novice-gapminder/ - https://swcarpentry.github.io/r-novice-inflammation/ - https://swcarpentry.github.io/r-novice-gapminder/01-rstudio-intro/index.html - https://r.developpez.com/tutoriels/introduction-r-et-rstudio/ - https://larmarange.github.io/analyse-R/ ### webinars RStudio https://www.rstudio.com/resources/webinars/ ## Objectif de l'atelier - installer R et la version desktop de RStudio - utiliser les principales fonctionnalités des panneaux de RStudio (édition, console, navigateurs) - créer un projet RStudio - savoir où et comment sauveguarder les historiques, les objets R - lire et utiliser un R Notebook - installer / mettre à jour un package ## Installation de R et prise en main de l'IDE RStudio ### Qu'est ce que R ? - https://www.r-project.org/ - un environnement logiciel open-source pour les calculs scientifiques et les graphiques. - disponibles pour Windows, Mac OS X et plusieurs plateformes UNIX (incluant Linux) sous forme de binaires (compilés) - développé par Robert Gentleman and Ross Ihaka et la R’s core development team - un langage de programmation (de script) interprété + add-on packages (13000) - the Comprehensive R Archive Network (CRAN) - un souffle nouveau avec l'univers tidyverse de la team RStudio et la pédagogie tidyverse first ### Pourquoi utiliser l'IDE RStudio ? - https://www.rstudio.com/ - IDE (Integrated Development Environnment) - facilite l'écriture le développement de programme et de fonctions dans un environnement intégré - projet open-source, multi-plateformes (Windows, Mac Os X, UNIX) - mode standalone (Desktop Rstudio), cloud (RStudio Cloud) ou serveur (à travers un naviguateur web, RStudio server) - organisé sous forme de 4 panneaux (éditeur de code source, console+terminal, navigateur d'objets/historiques, navigateurs de fichiers/graphiques/packages/aide) - plus convivial que la console R pour débuter, plus facile à apprendre que Emacs, plus facile à installer que Eclipse ... - développement actif de la Rstudio team ### Installation de R et de la version Desktop de RStudio Laissez vous guider par l'application shiny du package `learnr` : - https://learnr-examples.shinyapps.io/ex-setup-r/#section-welcome RStudio nécessite l'installation d'une version récente de R (http://cran.r-project.org). Vérifier si une version n'est pas déjà installée sur votre OS. ```bash R ``` Puis installer RStudio depuis rstudio.com (https://rstudio.com/products/rstudio/download/#download). > **Astuce** > Utiliser la variable d'environnement `RSTUDIO_WHICH_R` afin de pointer sur une version de R donnée. ```bash export RSTUDIO_WHICH_R=/usr/local/bin/R ``` ### Premiers pas avec RStudio Une fois installée lancer RStudio. #### Notion d'Espace de travail (Workspace) Au lancement de RStudio, R est lancé: >>> - Le programme R est lancé dans le répertoire courant (**working directory** - wd) - Si présentes, les commandes dans le fichier **.Rprofile** sont executées - Si présentes les données dans le fichier **.Rdata** sont chargées - En quitant (à l'aide de la commande `quit()`), l'utilisateur peut sauvegarder son espace de travail en répondant "yes" à la question "Save workspace image ?" (les données stockées dans les **objets R** seront écrites dans le **.RData**, les commandes dans le fichier **.Rhistory**) - Il y a la possibilité d'utiliser la commande `save.image()` ou `save()` en cours de session pour sauveguarder respectivement tout ou une partie des objets de la session dans un fichier au foramt **.RData**. Il y a la possibilité de recharger ce fichier à l'aide de la fonction `load()` >>> #### Création de Projets sous RStudio RStudio peut créer un nouveau projet (**"New Directory"**) ou importer un projet existant depuis un répertoire/dossier (**"Existing Directory"**) ou depuis un gestionnaire de version (**"Version Control"**) (git, svn). Les nouveaux projets sont de plusieurs types (Analyse : **"New Project"**, Développement de packages: **"R Package"** ou d'application Shiny **"Shiny Web Application"**) - Possibilité de créer un dépôt **git** associé ("Create a git repository") - Possibilité d'utiliser un gestionnaire de package **Packrat** ("Use packrat with this project") http://rstudio.github.io/packrat/rstudio.html #### Paramètres/Preferences de RStudio En cliquant sur l'onglet `RStudio>preferences` nous avons accès aux options paramétrables de RStudio. ## RStudio cheatsheets, à bookmarké ! https://raw.githubusercontent.com/rstudio/cheatsheets/master/rstudio-ide.pdf ## Références ![Getting started with RStudio](https://learning.oreilly.com/library/cover/9781449314798/250w/) ## Prise en main de RStudio sur le cloud - RStudio Cloud (gratuits pour 25 projets heures) - RStudio à l'IFB (cluster, cloud) ## Deuxième partie: prise en main de R sous RStudio ### R cheatsheets Apprendre le langage R c'est connaitre un certain nombre de fonctions, opérateurs, objets et les faires intéragire. https://raw.githubusercontent.com/rstudio/cheatsheets/master/base-r.pdf Le **package base** de R est constitué d'un ensemble de fonctions et de données installées par défaut. ### Les Iris de Fisher - Tout au long de nos ateliers, nous allons utiliser le jeux de données `iris` pour illustrer les différentes fonctionalités de base de R. - [Iris de Fisher](https://gitlab.in2p3.fr/vincent.navratil/training-prabi/-/tree/master/handson-data_iris) - https://fr.wikipedia.org/wiki/Iris_de_Fisher Iris setosa
Iris versicolor
Iris virginica
Nous allons pour se faire utiliser la fonction `data()`. > les fonctions en R sont toujours écrites de la manière suivante: nom_de_ma_fonction(liste de paramètres). Pour avoir plus d'information faire précéder le nom de la fonction à l'aide de la commande `?` ```R ?data #liste tous le datasets présents dans le package de base data() #charge le dataset "iris" data(iris) ls() ``` La fonction `ls()` permet de lister le contenu de l'espace de travail en terme d'objets R disponibles. La fonction `class()` détermine la classe de l'objet passé en paramètre. La fonction `names()` retourne dans un objet de classe vecteur le nom des différentes colonnes du dataframe passé en paramètre. ```R class(iris) dim(class) names(iris) class(iris$Sepal.Length) ``` ### Premières statistiques et graphiques descriptifs La fonction générique `summary()` donne un résumé de l'objet passé en paramètre. En ce qui concerne l'objet celà donne les valeures Min/Max,la médianne, la moyenne ainsi que les valeurs des premiers et troisième quartile ```R summary(iris) ``` La fonction graphique `boxplot()` représente ces valeures graphiquement sous forme d'une boite à moustaches. Les **paramètre** `varwidth` donne une largeure variable en fonction dun ombre d'observation, `notch` (entaille) donne un intervalle de confiance à 95% autoir de la mediane, `outline` donne les valeures extrème en dehors des limites fiwée par la boite à moustache. ```R boxplot(iris[1:4],varwidth = TRUE, notch = TRUE, outline = TRUE) ``` La fonction graphique `pairs()` donne un représentation sous forme d'une matrice de graphique de type scatterplot (plot de deux variables). ```R pairs(iris[1:4],col=c("red","blue","green")[iris$Species]) ``` ## RStudio cheatsheets https://rstudio.com/resources/cheatsheets/ ## Références de la formation https://pbil.univ-lyon1.fr/R/pdf/bs01.pdf https://rpubs.com/moeransm/intro-iris https://github.com/hbctraining/Intro-to-R/blob/master/schedules/1.5-day.md http://adv-r.had.co.nz/ ## Pour aller plus loin - Enseignements de Statistique en Biologie : http://pbil.univ-lyon1.fr/R/ - http://perso.ens-lyon.fr/lise.vaudor/grimoire/ - https://openclassrooms.com/fr/courses/4525256-initiez-vous-au-langage-r-pour-analyser-vos-donnees/ - https://melbournebioinformatics.github.io/r-intro-biologists/intro_r_biologists.html - https://swcarpentry.github.io/r-novice-gapminder/ - https://biostat2.uni.lu/lectures.html - https://mgimond.github.io/ES218/index.html - https://ggplot2-book.org/index.html ### Data science - R For Data Science : https://r4ds.had.co.nz/index.html ### Machine Learning - https://mrmint.fr/initiation-r-machine-learning ## Prochains ateliers - Initiation à R à l'aide de tidyverse - Initiation à Bioconductor https://github.com/biocswirl-dev-team/BiocSwirl - Initiation à RPostgreSQL - Initiation à Rmarkdown (https://rmarkdown.rstudio.com/) - Initiation à R shiny - ...