Génération de matrices matrix() Ce sont des vecteurs qui possèdent un argument supplémentaire, qui est lui-même un vecteur de longueur 2, sa dimension, et qui définit le nombre de lignes et de colonnes M=matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,) exemple:M=matrix(5:16,3,4,byrow=TRUE) Sélection dans une matrice,sous-matrices M[1,2],M[c(2,3),c(3,4)] M[i,],M[,j]: sélection d’une ligne ou d’une colonne, on obtient un vecteur M[c(1,5,4),]: sélection de plusieurs lignes (1,5 et 4), on obtient une nouvelle matrice Dimension d’une matrice: dim(): renvoie la dimension de la matrice. On peut aussi imposer cette dimension
Sélection dans une matrice exemple: v=1:12; M=matrix(v);dim(M)=c(3,4);M; [,1] [,2] [,3] [,4] [1,] [2,] [3,] Indice linéaire (par colonne) M[v],M[-v] exemple:M[-3] donne la matrice privée de son troisième élément, soit le vecteur... M[M[,1]>0,]:sélectionne la sous matrice pour laquelle les valeurs dans la première colonne sont positives, soit...
Opérations sur les matrices Les opérateurs habituels fonctionnent élément par élément Le produit matriciel algébrique:%*% t():transposition diag(): si v est un vecteur, diag(v)crée une matrice diagonale ayant v sur la diagonale si M est une matrice, diag(M) extrait la diagonale de M sum():si v est un vecteur ou une matrice, sum(v) calcule la somme de tous les éléments de v sum(v,na.rm=TRUE):somme sans tenir compte des NA
det(): déterminant d ’une matrice carrée solve():inverse d ’une matrice, ou résolution d ’un système d ’équations linéaire eigen(): calcul des valeurs propres et vecteurs propres Opérations sur les matrices (suite)
Opérations sur les matrices: la fonction apply() apply(M,margin,fun,…):applique à M la fonction fun (ou un opérateur, mais qui doit alors être mis entre guillemets),margin indique si l’action doit être appliquée sur les lignes ( margin=1), les colonnes ( margin=2) exemples: apply(M,1,sum):le résultat est une colonne formée des sommes des lignes de la matrice apply(M,2,sum):pareil pour les colonnes
Les listes Création de listes: avec la fonction list() Il n’y a aucune contrainte sur les objets qui y sont inclus Exemple: x=1:10;y= letters ; L=list(x,y); crée une liste sans nom L=list(chiffres=0:9,lettres=letters);L $chiffres [1] $lettres [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" Les deux champs sont accessibles par L$chiffres; L$lettres;
Les listes (exemple) On trouve souvent des listes comme résultat d'une commande R exemple:lm() est une fonction retournant pour un modèle linéaire une liste contenant au moins: coefficients, résidus, valeurs estimées,rangs, poids....
Les series temporelles La fonction ts() va créer une série temporelle à partir d’un vecteur (ou d’une matrice), et des options suivantes ts(data=,start=,end=,frequency=…) data:un vecteur ou une matrice start: le temps de la première observation end:le temps de la dernière observation frequency: le nombre d’observations par unité de temps
t=ts(matrix(rpois(36,5),12,3),start=c(1961,1), frequency=12) Series 1 Series 2 Series 3 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
plot(t)
Modes ouiNumérique, caractère, complexe logique Liste list ouiNumérique,caractère,complexe logique Série temporelle ts OuiNumérique,caractère,complexe logique Data.frame NonNumérique,caractère,complexe logique Matrice matrix NonNumérique,caractère,complexe logique Tableau array NonNumérique,caractèreFacteur factor NonNumérique,caractère,complexe logique Vecteur vector Plusieurs modes Modes possibles
Conversion d ’objets Conversion en numérique:as.numéric() FALSE->0 TRUE ->1 “ 1 ”, “ 2 ”,..- >1,2,..“ A ”->NA Conversion en logique: as.logical() 0->FALSE autres nombres ->TRUE “ FALSE”->FALSE “ TRUE” ->TRUE autres caractères ->NA Conversion en caractère:as.character() 1,2,…-> “ 1 ”, “ 2 ” FALSE- > “ FALSE ” TRUE -> “ TRUE ”