Next: Tableaux de données
Up: Vecteursmatrices, listes,
Previous: Matrices
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:
- 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.
- 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: Tableaux de données
Up: Vecteursmatrices, listes,
Previous: Matrices
Marcel Baumgartner