Analyse de données avec R


TP 4: Utilisation avancée du langage (2h)

Prof. Patrick E. Meyer

Version 3.0

Ecrire des fonctions (ex: 30 min + sol: 10 min)

  1. Que fait la fonction suivante?
    > fonction1 <- function(eu)
    {
        fb <- 40.3399*eu
        fb
    }
    

    Que s'affiche-t-il lorsqu'on écrit les lignes suivantes:

        > fonction1(100)
        > fonction1(200000)
        > fonction1(fonction1(1))
    

    Quel autre nom pourriez-vous donner à $fonction1$ ?

  2. Écrire une fonction $bmi()$ qui reçoit deux nombres $weight$ et $height$, et qui calcule le body mass index (unités: mètre et kilo) $bmi=\frac{weight}{height^2}$.

  3. Écrire une fonction qui reçoit une température en degrés Fahrenheit, et qui la convertit en degrés Celsius, sachant que celle-ci s'obtient en retranchant $32$ de la valeur en degrés Fahrenheit et en multipliant le résultat par $\frac{5}{9}$.

  4. La distance euclidienne entre 2 points de coordonnées $(x_1, y_1)$ et $(x_2, y_2)$ est donnée par la formule :

    \begin{displaymath}s = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2} \end{displaymath}

    Écrire une fonction qui reçoit les coordonnées de 2 points et calcule la distance entre ces 2 points (vous pouvez utiliser la fonction $sqrt$).

Boucles implicites (Ex: 30 min + Sol: 10 min)

  1. Ecrire un code R qui calcule le nombre de réels présents dans une liste, par exemple dans la liste list("BOnjOUR",32,"touT",3.14,"lE","MonDE"), le code doit retourner 2 (la fonction is.numeric() sera utile pour cet exercice).
  2. Écrire un extrait de code qui retourne un vecteur de racine carrées des sommes des éléments de chaque colonne d'une matrice.
  3. Écrire un extrait de code qui retourne la somme du vecteur des logarithmes (en base 2) des produits des éléments d'une ligne d'une matrice.

Données d'expression (Ex: 30 min + Sol: 10 min)

  1. Soit le jeu de données d'expressions génétiques d'E.coli stocké dans le fichier testset2.Rdata situé dans le répertoire /public/STAT0077-OCEA0224-INFO0956/tests/ sur le serveur Rstudio (et par ailleurs téléchargeable ici).
    Dans cette analyse, on considère un gène comme actif lorsque son niveau d'expression se situe au-delà (strictement) de la valeur donnée par le quartile empirique supérieur. De manière similaire, un gène est considéré comme inactif lorsque son niveau d'expression se trouve en-deçà (strictement) de la valeur donnée par le quartile empirique inférieur.
    (Consigne lorsqu'il y a un texte à complèter électroniquement:) n'encodez que des nombres entre 0 et 500 (aucune lettre ni espace ni ponctuation ne doit se trouver dans les cases à remplir).
    Q1 (entier entre 0 et 500): On vous demande combien de gènes ont une activité strictement inférieure à la valeur 0.538 dans l'expérience/stress numéro 33.

    Q2 (entier entre 0 et 500): On vous demande combien de gènes ont comme maximum de leur activité une valeur strictement inférieure à 0.5298.

    Q3 (entier entre 0 et 500): On vous demande de déterminer combien de gènes sont actifs dans l'expérience/stress 33.


<--- BACK