next up previous contents
Next: Listes Up: Vecteursmatrices, listes, Previous: Opérateurs booléens

Matrices

  Pour créer une matrice dans S-PLUS , utilisez matrix() ou, pour des matrices de dimension plus grande que 2, array(). Supposez x <- c(2,4,3,1,0,1) et comparez
Z1 <- matrix(x,ncol=3) et
Z2 <- matrix(x,ncol=3,byrow=T).

Les deux sont des matrices , mais l'attribution des données est différente! Dans la plupart des cas vous allez lire vos matrices ligne par ligne et vous devez alors préciser l'argument byrow=T, car byrow=F est la valeur par défaut dans matrix(). La commande dim(Z1) vous donne les dimensions de la matrice. Essayez aussi Z1+Z2 et t(Z1)%*%Z2 (il s'agit en fait de la multiplication matricielle ). Si x et y sont deux vecteurs de même longueur, as.vector(x%*%y) donne alors le produit scalaire usuel. Pour extraire des éléments d'une matrice: Z1[1,2] donne l'élément (1,2), Z1[,2] la 2ème colonne, Z1[1,] la 1ère ligne, Z1[,c(1,3)] les colonnes 1 et 3. Les fonctions rbind() et cbind() sont utiles pour construire des matrices: écrivez nouveau <- c(4,5) et regardez cbind(Z1,nouveau): cbind() peut coller des colonnes, rbind() de manière similaire des lignes. Consultez la documentation de dimnames() pour voir comment on peut donner des noms aux lignes et colonnes.

Voici quelques autres fonctions concernant les matrices: t() pour la transposée, eigen() pour calculer des valeurs et vecteurs propres d'une matrice carrée, chol() pour la décomposition de Choleski, solve() pour trouver l'inverse et finalement svd() pour la décomposition en valeurs singulières. Souvent, vous avez besoin de calculer des statistiques sur des matrices, comme par exemple trouver la moyenne sur toutes les lignes. Supposez Z de dimension : apply(Z,1,mean) vous donne un vecteur contenant les 25 moyennes par ligne. De la même manière, apply(Z,2,var) donne les variances estimées des 3 colonnes.

Il est possible de créer des matrices de n'importe quelle dimension. Posez z <- 1:30 et Z <- array(z,c(2,3,2)) et regardez comment S-PLUS

présente une matrice de dimension . Comparez Z[1,,1] et Z[1,,].



next up previous contents
Next: Listes Up: Vecteursmatrices, listes, Previous: Opérateurs booléens



Marcel Baumgartner