README.md 8.24 KB
Newer Older
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
1 2
---
title: Prise en main de R à travers RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
3
author: Vincent Navratil (vincent.navratil@univ-lyon1.fr)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
4 5
---

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
6
[[_TOC_]]
7

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
8 9
<a href="https://rstudio.com"><img src="https://d33wubrfki0l68.cloudfront.net/62bcc8535a06077094ca3c29c383e37ad7334311/a263f/assets/img/logo.svg" width=200px></a>

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
10
# Prérequis
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
11

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
12
- pas de connaissance de base sur les lignes de commandes et R
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
13

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
14 15 16 17 18 19 20 21
# Pour les fayots qui veulent prendre de l'avance !

https://software-carpentry.org/lessons/index.html

https://swcarpentry.github.io/r-novice-gapminder/
http://swcarpentry.github.io/r-novice-inflammation/


NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
22
# Séance 1 - Prise en main de l'IDE RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
23

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
24
## Objectif de l'atelier
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
25
- installer la version desktop de RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
26
- utiliser les principales fonctionnalités des panneaux de RStudio (édition, console, navigateurs)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
27
- créer un projet RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
28
- savoir où et comment sauveguarder les historiques, les objets R
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
29 30 31 32 33 34

## Support de l'atelier

![Getting started with RStudio](https://learning.oreilly.com/library/cover/9781449314798/250w/)

## Qu'est ce que R ?
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
35

36 37 38
- 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)
- Robert Gentleman and Ross Ihaka et la R’s core development team
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
39
- un langage de programmation (de script) interprété + add-on package (13000)
40
- the Comprehensive R Archive Network (CRAN) http://cran.r-project.org
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
41
- un souffle nouveau avec l'univers tidyverse de la team RStudio et de la pédagogie tidyverse first.
42

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
43
## Pourquoi utiliser l'IDE RStudio ?
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
44

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
45
- IDE (Integrated Development Environnment)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
46
- facilite l'écriture le développement de programme et de fonctions dans un environnement intégré
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
47
- projet open-source, multi-plateformes (Windows, Mac Os X, UNIX)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
48 49
- mode standalone (Desktop Rstudio) 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)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
50
- plus convivial que la console R pour débuter, plus facile à apprendre que Emacs, plus facile à installer que Eclipse ...
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
51 52
- développement actif

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
53
## Installation de la version Desktop de RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
54

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
55
RStudio nécessite l'installation d'une version récente de R (http://cran.r-project.org).
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
56

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
57 58 59 60 61 62 63 64 65 66 67 68 69 70
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
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
71

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
72 73
Une fois installée lancer RStudio.

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
74 75
### Notion d'Espace de travail (Workspace)
Au lancement de RStudio, R est lancé: 
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
76

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
77 78 79 80 81 82 83
>>>
- 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()`
>>>
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
84

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
85
### Création de Projets sous RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
86

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
87 88
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"**)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
89

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
90
- Possibilité de créer un dépôt **git** associé ("Create a git repository")
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
91
- Possibilité d'utiliser un gestionnaire de package **Packrat** ("Use packrat with this project") http://rstudio.github.io/packrat/rstudio.html
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
92

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
93 94
### Préférences de RStudio

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
95
En cliquant sur l'onglet RStudio>preferences nous avons accès aux options paramétrables de RStudio.
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
96

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
97 98
## Quelques cours en ligne utiles

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
99 100 101
https://biostat2.uni.lu/lectures.html

http://perso.ens-lyon.fr/lise.vaudor/grimoire/
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
102

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
103
https://openclassrooms.com/fr/courses/4525256-initiez-vous-au-langage-r-pour-analyser-vos-donnees/
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
104

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
105 106
http://swcarpentry.github.io/r-novice-gapminder/01-rstudio-intro/index.html

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
107 108
https://r.developpez.com/tutoriels/introduction-r-et-rstudio/

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
109

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
110 111 112 113 114
# RStudio cheatsheets

https://raw.githubusercontent.com/rstudio/cheatsheets/master/rstudio-ide.pdf

# Séance 2 - Prise en main de R sous RStudio
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
115 116 117

Le **package base** de R est constitué d'un ensemble de fonctions et de données installés par défaut.

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
118 119
Nous allons utiliser le jeux de données des Iris de Fisher `iris` pour illustrer les différentes fonctionalités de base de R.

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
120 121
https://fr.wikipedia.org/wiki/Iris_de_Fisher

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
122 123 124 125 126 127 128
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/56/Kosaciec_szczecinkowaty_Iris_setosa.jpg/440px-Kosaciec_szczecinkowaty_Iris_setosa.jpg" width="100px"> <i>Iris setosa</i><br>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Iris_versicolor_3.jpg/440px-Iris_versicolor_3.jpg" width="100px"> <i>Iris versicolor</i><br>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Iris_virginica.jpg/440px-Iris_virginica.jpg" width="100px"> <i>Iris virginica</i><br>

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

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
129 130 131 132 133 134 135 136
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)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
137 138 139 140 141 142 143 144
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
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
145
class(iris)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
146
dim(class)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
147 148
names(iris)
class(iris$Sepal.Length)
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
```
## 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])
```

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
170
## R cheatsheets
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
171

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
172
https://raw.githubusercontent.com/rstudio/cheatsheets/master/base-r.pdf
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
173

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
174
# Séance 1-bis - Prise en main de RStudio sur le cloud
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
175

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
176
# Références de la formation
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
177 178
https://pbil.univ-lyon1.fr/R/pdf/bs01.pdf
https://rpubs.com/moeransm/intro-iris
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
179 180
https://github.com/hbctraining/Intro-to-R/blob/master/schedules/1.5-day.md
http://adv-r.had.co.nz/
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
181

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
182 183 184 185
# R cheatsheets

https://rstudio.com/resources/cheatsheets/

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
186 187 188
## Apprendre R avec swirl

```R
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
189 190 191
> install.packages("swirl")
> library(swirl)
> swirl()
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
192 193
```

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
194 195
## Pour aller plus loin 
R For Data Science: https://r4ds.had.co.nz/index.html
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
196

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
197 198
https://melbournebioinformatics.github.io/r-intro-biologists/intro_r_biologists.html

NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
199 200 201
https://swcarpentry.github.io/r-novice-gapminder/


NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
202
# Prochains thèmes
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
203 204
Initiation à Bioconductor
Initiation à tidyverse
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
205 206 207
Initiation à RPostgreSQL
Initiation à Rmarkdown (https://rmarkdown.rstudio.com/)
Initiation à R shiny
NAVRATIL VINCENT's avatar
NAVRATIL VINCENT committed
208
...