silico.biotoul.fr
 

M1 Traitement de Donnees Biologiques - TP Intro R

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m
m (Vecteurs)
Line 70: Line 70:
== Vecteurs ==
== Vecteurs ==
 +
<span style='color: blue;'>Créez un vecteur <tt>x</tt> contenant les valeurs 2,3,5,8,4,6 rassemblées avec la fonction <tt>c()</tt> :</span>
 +
<source lang='rsplus'>
 +
x = c(2,3,5,8,4,6)
 +
x
 +
</source>
 +
<span style='color: blue;'>Calculez sa longueur avec la fonction <tt>length()</tt> :</span>
 +
<source lang='rsplus'>
 +
length(x)
 +
</source>
 +
Accès à certains éléments :
 +
<span style='color: blue;'>Affichez la deuxième valeur de x.</span> Pour cela, on utilise les crochets :
 +
<source lang='rsplus'>
 +
x[2]
 +
</source>
 +
Pour accéder à plusieurs éléments, on utilise un vecteur contenant les positions :
 +
<source lang='rsplus'>
 +
x[ c(2,4,1) ]
 +
</source>
-
```{r}
+
Si les positions se suivent, on peut utiliser les <tt>:</tt>
 +
<source lang='rsplus'>
 +
2:4
 +
x[2:4]
 +
</source>
-
# Démarrer une session  / charger un script
+
ou dans l'ordre inverse :
-
#  Créer un répertoire de travail sur le bureau, dans lequel se trouvent
+
<source lang='rsplus'>
-
les fichiers de données et les fichiers que vous allez éventuellement éditer avec R.
+
4:2
-
# - Lancer Rstudio --> Session --> set working directory --> aller jusqu'au dossier de travail
+
x[4:2]
-
# - ouvrir un script (déjà présent dans le répertoire) ou "new script"
+
</source>
-
#  - attente de commande: control R pour copier-coller la commande
+
 
-
#  - # = insérer des commentaires
+
On peut aussi accéder à tous les éléments sauf certains :
-
#  - flèches haut et bas = naviguer dans les commandes déjà lancées
+
<source lang='rsplus'>
 +
x[ -2 ] # tous, sauf le 2ème
 +
x[ -2:-3 ] # tous, sauf le 2ème et le 3ème
 +
</source>
 +
 
 +
Exploration suivant un critère: vrai/faux, indices, ou valeurs
 +
<source lang='rsplus'>
 +
x>4
 +
which( x>4 )
 +
x[ x>4 ]
 +
</source>
 +
 
 +
Effectuer une opération sur chaque élément :
 +
<source lang='rsplus'>
 +
x
 +
1 / x
 +
# en arrondissant 2 chiffres après la virgule)
 +
round(1/x, 2)
 +
x + 1
 +
x * 2
 +
</source>
 +
 
 +
<span style='color: blue;'>Ajoutez ces parties à votre compte rendu.</span>
 +
 
 +
== Fonctions ==
 +
 
 +
R charge certaines librairies au démarrage selon comment il est installé et configuré. Les librairies mettent à disposition des fonctions qui peuvent être très simples, jusqu'à très très compliquées.
 +
 
 +
<span style='color: blue;'>Essayez les suivantes sur votre vecteur <tt>x</tt>. Et notez dans votre compte rendu ce qu'elles permettent de faire.</span>
 +
* <tt>summary(x)</tt>
 +
* <tt>min</tt>
 +
* <tt>max</tt>
 +
* <tt>median</tt>
 +
* <tt>mean</tt>
 +
* <tt>sd</tt>
 +
 
 +
Afin de mieux comprendre ce qu'elles font et quels sont les paramètres que l'on peut leur passer, <span style='color: blue;'>utilisez l'aide :</span>
 +
<source lang='rsplus'>
 +
help(median)
 +
</source>
 +
 
 +
ou plus simplement :
 +
<source lang='rsplus'>
 +
?mean
 +
</source>
 +
 
 +
Quand on ne connaît pas exactement le nom, on peut faire une recherche pas mot :
 +
<source lang='rsplus'>
 +
??mean
 +
</source>
 +
 
 +
-----
 +
```{r}
# Obtenir de l'aide sur une fonction
# Obtenir de l'aide sur une fonction
Line 89: Line 163:
# sous R, on tape par exemple ?mean
# sous R, on tape par exemple ?mean
-
# Calculs et Objets de stockage sous R
 
-
# calculer la somme des 3 premiers entiers naturels
 
-
1+2+3
 
# calculer la fonction exponentielle du nombre 10
# calculer la fonction exponentielle du nombre 10
exp(10)
exp(10)
# créer un objet que vous nommerez "my_object", et qui contient la commande précédente
# créer un objet que vous nommerez "my_object", et qui contient la commande précédente
my_object = exp(10)   
my_object = exp(10)   
-
# logique: "est-ce que mon objet est égal/différent de 2"?
 
-
my_object == 2
 
-
my_object != 2
 
-
# un objet peut contenir du texte
 
-
my_object="biology"
 
-
my_object
 
-
# Vecteurs: création, exploration et manipulation
 
-
# créez un vecteur "x" contenant les valeurs 2,3,5,8,4,6 rassemblées avec la commande c()
 
-
x = c(2,3,5,8,4,6) ; x
 
-
# donnez sa longueur avec la commande length
 
-
length(x)
 
-
# affichez la deuxième valeur de x (utiliser x[])
 
-
x[2]
 
-
# exploration suivant un critère: oui/non; indices; valeurs
 
-
x>4;which(x>4);x[x>4]
 
-
# donner l'inverse de x
 
-
1/x
 
# Importation de tableaux de données sous R
# Importation de tableaux de données sous R

Revision as of 15:20, 24 August 2016

Contents

Prise en main de R et RStudio

Au cours de ce TP, nous allons utiliser le logiciel R à travers une interface particulière : RStudio. Cette interface permet d'éditer des scripts en R ainsi qu'en langage Markdown que nous allons utiliser pour la rédaction de rapports scientifiques. L'interface se compose en plusieurs parties (cf. capture d'écran ci-dessous) :

  • en haut à gauche : édition de fichiers et scripts, et visualisation des données tabulées
  • en bas à gauche : exécution de code R dans une console
  • en haut à droite : les objets et variables chargés en mémoire
  • en bas à droite : plusieurs onglets : accès aux fichiers, graphiques, librairies disponibles, aide, et visualiseur de rapports scientifiques

Image:M1.TDB.RStudio-screenshot.jpg


Créer un répertoire de travail sur le bureau (par exemple TDB-TP1_introduction) et commencez par télécharger le fichier source que vous allez utiliser et compléter pour générer le compte rendu de TP : M1.TDB.TP_introduction_R.Rmd (click droit de la souris -- enregistrer la cible sous...).

Ouvrez le logiciel RStudio et chargez ce fichier puis lancez sa compilation pour voir le rendu comme dans la capture d'écran ci-dessus. Pour cela cliquez sur le bouton Knit HTML ou bien utilisez la combinaison de touches Ctrl + shift + K.

Vous verrez que si la compilation est réussie, un fichier M1.TDB.TP_introcution_R.html va être généré dans le même répertoire que le fichier M1.TDB.TP_introduction_R.Rmd que vous avez téléchargé.


Utilisation et calculs avec du code R

Utilisation de variables

Les variables (ou objets) permettent de stocker des données qui peuvent être :

  • une valeur simple de type numérique (numeric), logique (logical), chaîne de caractères (character) ou qualitative (factor).
  • une liste (appelée vector).
  • un tableau à 2 dimensions, les colonnes pouvant avoir des types différents (data frame). Ce sont les plus utilisés en statistiques.
  • un tableau à 2 dimensions, toutes les cases ayant le même type (matrix).
  • un tableau à plus de 1 dimension (array).
  • une combinaison des précédents (list).

Une variable à un nom (défini par l'utilisateur) qui permet d'accéder à son contenu.

Créer une variable appelée x qui stocke le résultat du calcul précédent 1 + 2 + 3. L'affectation d'une valeur à une variable se fait avec <- ou le signe = comme suit dans la console :

x = 1 + 2 + 3

Vous devriez voir s'afficher x dans l'environnement en haut à droite comme sur la capture d'écran précédente.

Pour afficher le contenu d'une variable, il suffit de taper son nom (dans la console en bas à gauche) :

x

Rajoutez ces commandes à votre du compte rendu de TP (script en haut à gauche) et assurez-vous que cela fonctionne (en recompilant le fichier).

Essayez avec les autres types de variables simples. Par exemple :

texte = "Phrase qu'il faut mettre entre guillemets."
logique = TRUE
faux = FALSE
# ce qui est après un # correspond à du commentaire et n'est pas interprété comme du code
x = x * 2 # on multiplie x de toute à l'heure par 2
y = x**2  # y prend la valeur de x au carré (puissance 2)

Les valeurs logiques peuvent être le résultats de tests :

x < 10  # strictement inférieur à 10 ?
x <= 11 # inférieur ou égal
x == 12 # test d'égalité
x >= 13
x > 0
x != 0 # test si x est différent de 0
! FALSE  # inverse une valeur logique

Ajoutez ces parties à votre compte rendu.

Vecteurs

Créez un vecteur x contenant les valeurs 2,3,5,8,4,6 rassemblées avec la fonction c() :

x = c(2,3,5,8,4,6)
x

Calculez sa longueur avec la fonction length() :

length(x)

Accès à certains éléments : Affichez la deuxième valeur de x. Pour cela, on utilise les crochets :

x[2]

Pour accéder à plusieurs éléments, on utilise un vecteur contenant les positions :

x[ c(2,4,1) ]

Si les positions se suivent, on peut utiliser les :

2:4
x[2:4]

ou dans l'ordre inverse :

4:2
x[4:2]

On peut aussi accéder à tous les éléments sauf certains :

x[ -2 ] # tous, sauf le 2ème
x[ -2:-3 ] # tous, sauf le 2ème et le 3ème

Exploration suivant un critère: vrai/faux, indices, ou valeurs

x>4
which( x>4 )
x[ x>4 ]

Effectuer une opération sur chaque élément :

x
1 / x
# en arrondissant 2 chiffres après la virgule)
round(1/x, 2)
x + 1
x * 2

Ajoutez ces parties à votre compte rendu.

Fonctions

R charge certaines librairies au démarrage selon comment il est installé et configuré. Les librairies mettent à disposition des fonctions qui peuvent être très simples, jusqu'à très très compliquées.

Essayez les suivantes sur votre vecteur x. Et notez dans votre compte rendu ce qu'elles permettent de faire.

  • summary(x)
  • min
  • max
  • median
  • mean
  • sd

Afin de mieux comprendre ce qu'elles font et quels sont les paramètres que l'on peut leur passer, utilisez l'aide :

help(median)

ou plus simplement :

?mean

Quand on ne connaît pas exactement le nom, on peut faire une recherche pas mot :

??mean

```{r}

  1. Obtenir de l'aide sur une fonction
  2. onglet HELP
  3. sous R, on tape par exemple ?mean
  1. calculer la fonction exponentielle du nombre 10

exp(10)

  1. créer un objet que vous nommerez "my_object", et qui contient la commande précédente

my_object = exp(10)


  1. Importation de tableaux de données sous R
  2. au préalable, on rentre les données sous excel
  3. on enregistre en format "txt, séparateur = tabulation""
  4. éviter de mettre des espaces dans les noms de variables, ainsi que des accents
  1. sous R:
  2. on utilise la fonction "read.table":
  3. - on spécifie s'il y a un en-tête (nom des variables en première ligne): "header=T" (header="en-tête")
  4. - on spécifie le séparateur (sep=" ": espace, sep=";": point-virgule, sep="\t": tabulation)
  5. - si la décimale est une virgule alors dec=","
  1. on ouvre le fichier "croissance_plantes.txt":

croissance = read.table("croissance_plantes.txt", sep="\t",header=TRUE)

  1. on affiche le tableau

croissance

  1. pour pouvoir ensuite accéder aux variables simplement en donnant leurs noms

attach(croissance)

  1. pour afficher les noms des variables

names(croissance)

  1. Exportation d'objets R
  2. nous souhaitons par exemple exporter une partie du tableau précédent
  3. ==> les données relatives aux "pyrénées"

my_data=croissance[origine_geo=="pyr",]

  1. on exporte avec la fonction

write.table(my_data,"my_data_exported.txt",quote=F,col.names= T,row.names = F, sep = "\t")

  1. Statistiques basiques sur une variable qualitative
  2. nombre d'individus par catégorie

summary(origine_geo)

  1. Fonction graphique sur une variable qualitative
  2. nombre d'individus par catégorie

pie(summary(origine_geo),main="origines géographique des plantes") barplot(summary(origine_geo),main="origines géographique des plantes",las=3)

  1. Statistiques basiques sur une variable quantitative
  2. moyenne, variance (correction "n-1"), écart-type

mean(taille); var(taille); sd(taille)

  1. valeur minimale, maximale

min(taille); max(taille)

  1. quantiles

median(taille); quantile(taille); quantile(taille,c(0.5,0.95,0.99))

  1. la commande summary() résume l'objet

summary(taille)

  1. Fonction graphique sur une variable quantitative
  2. distribution de la taille des plantes récoltées, sur des graphiques séparés
  3. découper une fenêtre graphique (ici: "2 lignes, 2 colonnes") pour positionner plusieurs graphiques

par(mfrow=c(2,2)) hist(taille,xlim=c(40,90),xlab="taille (cm)",ylab="fréquence",freq=T,main="histogramme de la taille des plantes",col="orange") boxplot(taille,main="boxplot de la taille des plantes",ylab="taille") plot(taille~origine_geo,las=3) stripchart(taille~origine_geo,las=1)

  1. Fonction graphique sur deux variables quantitatives mesurées sur les mêmes individus
  2. nuage de points: taille versus poids

x11() # nouvelle fenêtre graphique plot(taille,poids,col="red",pch=20)

  1. Sauvegarde et/ou exportation d'un graphique
  2. dans l'onglet plot, au choix:
  3. - Copy to Clipboard ==> coller dans word/powerpoint.
  4. - Save as Image (TIFF,JPEG,...)
  5. - Save as PDF
  1. exportez le graphique précédent


```

Liens