Création d'une liste


    
    Une liste est une collection d'objets (non nécessairement de meme types) ; elle se crée via la fonction list :
    > seq1 <- c(0.2, 0.3, 0.4, 0.1)
    > L1 <- 58402
    > res <- list(L1, seq1)
    > res
    [[1]]
    [1] 58402
    [[2]]
    [1] 0.2 0.3 0.4 0.1
    Pour rallonger une liste d'éléments, on utilise l'opérateur d'assemblage c() :
    >espece1<-"phage"
    >c(espece1,res)
    [[1]]
    [1] "phage"
    [[2]]
    [1] 58402
    [[3]]
    [1] 0.2 0.3 0.4 0.1
    Contrairement `a data.frame, la fonction list ne conserve pas les noms des objets ; autrement dit, la longueur de la séquence (L1) est le premier élément de la liste, et la composition en nucléotides est le 2 eme élément. On peut attribuer des étiquettes différentes plus explicites aux différents éléments d'une liste, ce qui sera tres pratique pour y accéder (sans avoir a se souvenir dans quel ordre ils sont rangés dans la liste !). Par exemple,
    > seq1 <- c(0.2, 0.3, 0.4, 0.1)
    > L1 <- 58402
    > res <- list(longueur = L1, composition = seq1)
    > res
    $longueur
    [1] 58402
    $composition
    [1] 0.2 0.3 0.4 0.1
    pour accéder aux champs longueur (resp. composition) de la liste res, on utilisera l'opérateur $ : res$longueur (resp. res$composition).
    
 Pour accéder aux objets d'une liste on utilisera soit les crochets simples (dans ce cas une liste est retournée), soit les crochets doubles (dans ce cas l'objet est extrait) :
    > seq1 <- c(0.2, 0.3, 0.4, 0.1)
    > L1 <- 58402
    > titre <- "phage"
    > res <- list(titre, L1, seq1)
    > res[1:2]
    [[1]]
    [1] "phage"
    [[2]]
    [1] 58402
    > res[[3]]
    [1] 0.2 0.3 0.4 0.1
    Si l'on a donné des étiquettes aux différents objets de la liste, alors on peut extraire ces objets en utilisant l'opérateur $ :
    > seq1 <- c(0.2, 0.3, 0.4, 0.1)
    > L1 <- 58402
    > titre <- "phage"
    > res <- list(espece = titre, longueur = L1, composition = seq1)
    > res$espece
    [1] "phage"
    > res$longueur
    [1] 58402
    > res$composition
    [1] 0.2 0.3 0.4 0.1
    
maliste <- list(nom="Fred", epouse="Marie", monvecteur)
    On peut alors afficher le contenu de la liste maliste en tapant son nom :
    maliste
    $nom
    [1] "Fred"
    $epouse
    [1] "Marie"
    [[3]]
    [1] 8 6 9 10 5
    Les composantes d'une liste sont numérotées et on peut y accéder en utilisant des indices. On peut donc extraire le contenu d'une composante d'un élément d'une liste en tapant le nom de la liste avec l'indice de la composante à extraire entre double crochets :
    maliste[[2]]
    [1] "Marie"
    maliste [[3]]
    [1] 8 6 9 10 5
    Les composantes d'une liste peuvent être également nommées, et dans ce cas on peut accéder à leur contenu en tapant le nom de la liste suivi d'un $, suivi du nom de la composante. Par exemple maliste$nom est identique à maliste[[1]]. On peut retrouver les noms attribués aux champs d'une liste avec la fonction attributes(). Ainsi par exemple :
    attributes(maliste)
    $names
    [1] "nom" "epouse" ""
    Il est possible de concaténer plusieurs listes en une seule au moyen de la fonction c(liste1, liste2, ...), comme pour les vecteurs.
    
    
    
    
    
    


Modifié le: mardi 28 juin 2022, 23:50