Home
Aide mémoire R
Quelques librairies R
Liens & contact
Recherche :
Aide-memoire-R > Le-langage > Arrays-et-matrices

Arrays et matrices.

Une array est un tableau à n dimensions de valeurs de même type. Une matrice est une array à 2 dimensions.

Les matrices sont données par colonne (i.e. numéro de ligne = premier numéro varie en premier) :
si mat vaut

1   3
2   4
as.vector(mat) donne 1 2 3 4

Une matrice peut se définir en donnant ses éléments par colonne et en précisant l'une de ses dimensions :

as.vector(mat) redonne alors c(1, 2, 3, 4, 5, 6)

On peut donner les noms des lignes et des colonnes respectivement par :
mat <- matrix(c(3, 2, 1, 5, 6, 4), nrow = 3, dimnames = list(c("A", "B", "C"), c("a", "b")))

nrow(mat) et ncol(mat) : pour avoir le nombre de lignes et le nombre de colonnes d'une matrice.

t(mat) : transposée d'une matrice.

Indexation :

row(mat) : renvoie une matrice de même dimension que mat et dont chaque cellule a pour valeur son numéro de ligne. Idem avec col(mat) pour le numéro de colonne.

Diagonales et matrices : diag est une fonction dont les effets dépendent de ce qu'on lui donne en entrée :

Une matrice peut avoir des noms de lignes et de colonnes

rbind et cbind :

Opérations sur les matrices. Si mat1 et mat2 sont des matrices :

Outer product : array1 %o% array2 : array de dimension c(dim(array1), dim(array2)) obtenue par toutes les combinaisons de multiplication possibles (opération non commutative) :

Agrégats sur les matrices :

apply : c'est une généralisation de rowSums. Le second argument est le vecteur des dimensions qui restent après avoir appliqué la fonction :

Conversion d'une matrice de type character en matrice numérique :

mat <- matrix(c("7", "5", "6", "2"), nrow = 2)
mat <- apply(mat, c(1, 2), as.numeric)

sweep sur une matrice numérique :

scale sur une matrice numérique : vise à normaliser les données, chaque colonne représentant une variable et chaque ligne un individu :

Définition d'une array par ses données et ses dimensions :
arr <- array(data = c(1, 2, 3, 4, 5, 6, 7, 8), dim = c(2, 2, 2)) donne un tableau de dimensions 2 x 2 x 2 (ligne x colonne x 3ème dimension). as.vector(arr) redonne le vecteur de départ.

Si a est une array de dimension 2 x 4 x 3, alors dim(a) vaut c(2, 4, 3). Alors :

Permutation des dimensions d'une array : échange les dimensions de l'array avec la permutation donnée :

Indexation de matrice par une autre matrice : si mat est une matrice 4 x 3 et matInd est une matrice 2 x 2 dont les valeurs sont entières et dans [1,4] x [1,3], mat[matInd] est un vecteur de valeurs de mat dont les coordonnées sont les vecteurs lignes de matInd :

> mat
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12
> matInd
     [,1] [,2]
[1,]    4    3
[2,]    2    1
> mat[matInd]
[1] 12  2

Résolution d'équations linéaires et inversion de matrice :

Calcul du déterminant d'une matrice carrée :
det(mat) : renvoie un scalaire.

Calcul de valeurs propres et vecteurs propres d'une matrice carrée (diagonalisation de matrices) :
Pour une matrice carrée mat :


Dernière date de modification : 2010-05-22