Traitement et Analyse Informatiques de Données Biologiques (STAT0077)


TP 2: Structure de données R

Prof. Patrick E. Meyer

Version 2.0

Matrices

  1. Soit y <- matrix(45:64, nr=5, byrow=TRUE)
    Que s'affiche t'il lorsque l'on entre les lignes suivantes
      > y[1,]
      > y[3:4,3:4]
      > y[-c(2,3),-c(1,4)]
      > cbind(y,c(2,3,5,8,13))
    

  2. Écrire un extrait de code qui permet de créer une matrice de 5 colonnes dont les premières lignes contiennent des valeurs de 10 à 19 et les dernières de 50 à 59.
    1. Rajouter à la matrice précédente quelques lignes qui contiennent des valeurs allant de 90 à 99.

    2. Enlever la troisième colonne à la matrice précédente.
  3. Créer une matrice carrée de taille 4X4, composée uniquement de 1.

Fonctions sur vecteurs et matrices

Étant donné les fonctions suivantes (voire doc.), sum(), prod(), t(), sqrt(), log(), apply(), min(), max(), sort(), paste(), rank(), which(), length(), print().

  1. Écrire une fonction qui renvoie un vecteur composé de deux éléments: le minimum et le maximum d'un autre vecteur.

  2. Écrire une fonction qui renvoie un vecteur composé de la racine carrée des $n$ plus grands éléments d'un autre vecteur, mais triés dans l'ordre décroissant.

  3. Écrire une fonction qui reçoit un vecteur et un nombre $n$, représentant l'indice d'un élément dans un vecteur, et retourne une phrase de texte contenant la valeur de l'élément d'indice $n$.
    Par exemple, si $n$ vaut $3$ et le vecteur est $c(1.618, 2.716, 3.141)$, la fonction doit retourner: "le 3e élément du vecteur vaut 3.141".

  4. Écrire une fonction qui affiche "OK" si une matrice carrée $A$ est symétrique et "KO" sinon.

    Rappel : une matrice $A_{ij}$ ($i$ de $1$ à $n$, $j$ de $1$ à $n$) de taille $n$, est dite symétrique si elle est égale à sa transposée, c'est-à-dire si :


    \begin{displaymath}
\forall i,j : 1 \leq i,j \leq n : A_{ij}=A_{ji}
\end{displaymath}

  5. Écrire un extrait de code qui retourne un vecteur de racine carrées des sommes des éléments de chaque colonne d'une matrice.
  6. É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.

Facteurs

  1. Que s'affiche-t-il à la fin des lignes suivantes:
      > z <- factor(c(0,1,1,0,0,1,1))
      > levels(z) <- c("malade","saine")
      > z
    
  2. Convertir le facteur f <- factor(c(0.1,0.9,3.14,1.618,0.5,1)) en vecteur de réels.

Liste

  1. Soit l'assignation suivante:
     > a <- list(valeurs=rep(c(1,2),3), motif=c("acgt","tgca") )
    

    Que s'affiche t'il après chacune de ces lignes?
     > a[[1]]
     > a[[2]][2]
     > a$motif
     > a$valeurs[3]
    

  2. Ecrire une fonction 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"), la fonction doit retourner 2.


<--- BACK