# 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

## 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
- ...