Les tableaux et les tableaux de données


    Tableaux (arrays)

    Les tableaux sont des matrices de dimensions supérieures à 2. On peut les générer à partir de la commande array(vec,c(n,p,q)) où vec est le vecteur contenant les éléments du tableau et l'argument c(n,p,q) désigne les dimensions du tableau : n lignes, p colonnes, q matrices, ..
    . En apparence ce sont des matrices dont les colonnes peuvent être de modes différents: caractère, numérique, logique, …
     exemple : si le vecteur h contient 24 éléments, la commande suivante construira un tableau Z, 3 par 4 par 2
    h<- 1:24
    H=array(1:12,c(2,3,2))
    Z <- array(h, dim=c(3,4,2))
    dim(Z);
    length(Z)
    nrow(Z);
    ncol(Z)
    > Z
    -- un tableau de zéros est construit par
    > Z 1<- array(0, dim=c(3,4,2))
    opérations sur tableaux : arithmétique est élément par élément à condition que les attributs dim sont les mêmes ;
    > D <- 2*A*B + C + 1
      Z1=Z1+1
      Z2=Z1+Z
    Z1
    > Z2
    On peut définir une matrice par
    > array(data=1,dim=c(2,3))
    On peut aussi donner des noms aux lignes et aux colonnes, avec l'option dimnames :
    mytab<-array(data=1,dim=c(2,3),
    dimnames=list(c("R1","R2"),c("C1","C2","C3")))
    dimnames permet de donner des noms à chaque rangée, colonne, ou autre dimension du tableau. C'est un argument très utile quand on travaille sur des bases de données pour repérer la signification des colonnes.
      La fonction apply() reste utilisable
    > H=array(1 :12,c(2,3,2))
    > H[1,2,2]
    > H[, ,1]
    > H[,1,1]
    > H[1, ,1]
    > apply(H,1,sum)
    > apply(H,2,sum)
    > apply(H,3,sum)

    Creation d'un tableau de donnees

Un tableau de données est une collection de vecteurs de meme longueur. On peut créer un tableau de données en utilisant la fonction data.frame. Par exemple :

    > seq1 <- c(0.2, 0.3, 0.4, 0.1)
    > seq2 <- c(0.25, 0.35, 0.15, 0.25)
    > df <- data.frame(seq1, seq2)
    > df
    Il est possible de donner des noms aux lignes avec l'option row.names qui doit fournir un vecteur de mode caractere et de longueur égale au nombre de lignes du tableau de donnees.Par exemple, dans l'exemple ci-dessus le tableau de donnees correspond aux compositions en nucléotides de deux séquences, on pourrait donc écrire :
    > seq1 <- c(0.2, 0.3, 0.4, 0.1)
    > seq2 <- c(0.25, 0.35, 0.15, 0.25)
    > df <- data.frame(seq1, seq2, row.names = c("A", "C", "G", "T"))
    > df
    La fonction read.table qui permet de lire des données dans un fichier créer implicitement un objet de type tableau de données.
    Les fonctions cbind et rbind que nous avons vu pour les matrices s'appliquent aussi pour des tableaux de données. On notera aussi les fonctions ncol et nrow qui renvoient le nombre de colonnes et le nombre de lignes d'un tableau de données (ou d'une matrice).
     Pour récupérer une colonne d'un tableau de données, il y a plusieurs facon selon que l'on utilise le nom des colonnes ou non. Reprenons le tableau de données df de
    Si on n'utilise pas le nom de la colonne :
    -- df[1] retourne un tableau de données (`a une colonne),
    -- df[[1]] retourne un vecteur,
    -- df[,1] retourne un vecteur.
    Si on utilise le nom seq1 de la colonne :
    -- df["seq1"] retourne un tableau de données (`a une colonne),
    -- df[["seq1"]] retourne un vecteur,
    -- df$seq1 retourne un vecteur.
    Pour récupérer une ligne (la 1`ere par exemple), on utilisera df[1,] mais cela retourne un tableau de données.
    > df[1]
    > df[[1]]
    > df[,1]
    > df["seq1"]
    > df[["seq1"]]
    > df$seq1

آخر تعديل: الثلاثاء، 28 يونيو 2022، 11:37 PM