Mis a jour le 2016-05-22, 16:22

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 :

Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R