next up previous contents
Next: Tableaux de données Up: Vecteursmatrices, listes, Previous: Matrices

Listes

  Une liste est une collection d'objets qui peuvent être de nature différente. En voici un exemple: effectuez une régression simple avec comme prédicteur la quantité de pluie (en ``inches'') dans six états des USA de 1890 à 1927 ( corn.rain) et, comme réponse, la récolte de maïs en ``bushels per acre'' ( corn.yield). La commande suivante le fait:
corn.reg <- lsfit(corn.rain,corn.yield)

La variable corn.reg contient les résultats de la régression et elle a la forme d'une liste. Ecrivez names(corn.reg) pour voir les 4 composantes "coef", "residuals", "intercept" et "qr". Vous pouvez accéder aux coefficients estimés via la commande corn.reg$coef et le résultat est un vecteur de longueur 2 qui contient ainsi une estimation de la pente et de l'ordonnée à l'origine. corn.reg$residuals contient les résidus de la régression, dans notre exemple un vecteur de longueur 38. Parfois les composantes d'une liste n'ont pas de noms. Dans ce cas vous pouvez accéder à la deuxième composante avec la commande corn.reg[[2]] (tapez help("[[") pour plus de détails). Si vous voulez seulement les résidus des observations 18, 20 et 25, tapez
corn.reg[[2]][c(18,20,25)].

Examinez les autres composantes: celle nommée `` intercept'' vaut `` F'' (pour ``False'') si la régression a été forcée par l'origine, sinon elle vaut `` T'' (``True''). Celle nommée `` qr'' est elle-même une liste et elle contient une décomposition numérique de la matrice des prédicteurs (voir help(qr)).

Pour créer une liste, il existe deux possibilités:

  1. Si vous connaissez les éléments à l'avance, écrivez
    res.1 <- list(val.propres=vp1, vec.propres=vp2).

    La commande res.1$val.propres contient donc vp1.
  2. Si vous ne savez pas à l'avance quels en seront les éléments, écrivez
    res.2 <- vector("list",3).

    L'argument `` 3'' indique la longueur de la liste. L'attribution se fait avec les doubles crochets: par exemple res.2[[1]] <- c(1:10). Pour donner des noms aux composantes, on utilise:
    names(res.2) <- c("c1","c2","c3").

Notez ici une subtilité dans l'utilisation des listes: le résultat de la commande corn.reg[1] est différent de celui de corn.reg[[1]]. L'utilisation de `` [['' donne la première composante de corn.reg en tant que vecteur, tandis qu'avec `` ['' vous l'obtenez en tant que liste. L'utilisation des crochets simples `` ['' est utile quand vous devez extraire plusieurs composantes d'une liste (par exemple corn.reg[c(1,3)]) ou attribuer des éléments à la liste via une boucle: imaginez que vous ayez 10 prédicteurs et vous aimeriez mettre dans un seul objet les 10 régressions simples possibles. Pour faire cela, créez tout d'abord la liste ( reg.10 <- vector("list",10)) et puis attribuez les résultats des 10 régressions de la manière suivante:

for(i in 1:10) reg.10[i] <- lsfit(x[,i],y)



next up previous contents
Next: Tableaux de données Up: Vecteursmatrices, listes, Previous: Matrices



Marcel Baumgartner