Matrices
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
Listes, series temporelles
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 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
data frames
Les data frames (traduction: chassis, cadre) sont le « type », le format par défaut sous R, format obtenu: – par la lecture de fichiers externes – Et format obligatoire pour exporter des tableaux de R
data.frame En interne ce sont des listes, dont les champs sont des colonnes En apparence ce sont des matrices, avec comme différence essentielle que les différentes colonnes peuvent être de modes distincts:alphanumériques, booléennes, facteurs… Les lignes et les colonnes sont nommées et on peut y accéder par leur indice de position ou par leur nom… exemple: L= LETTERS[1:3]; D=data.frame(x=rep(1,10),y=1:10, fac=sample(L,10,replace=TRUE)); La troisième colonne est D[,3], ou D[,”fac”], ou D$fac x y fac C C A B A A B A B C
Fonctions pour les data frames data.frame(): names(),colnames()rownames()list e des noms de ligne et de colonnes dimnames():liste ayant 2 champs: les noms de lignes et les noms de colonne dim():liste donnant les dimensions du data frame cbind():concaténation en colonne rbind():concaténation en ligne Exemple:cbind(d,salle=rep(c(1,2),5)) x y fac salle B A B A C C B C B A 2
La fonction data() : Cette fonction a deux effets distincts: elle permet de lister les data frame existants de lire des données internes et de les charger dans un data.frame Exemples: data() # liste des noms de tous les data frame dans le package par défaut appelé « datasets » D=data(USArrests) # charge le data frame nommé USArrests dans la variable D data(package =.packages(all.available = TRUE))# Donne la liste de tous les data frames de tous les packages disponibles
Pour avoir une description du data frame obtenu data(mtcars); ?mtcars ouvre une page d'aide str(mtcars) donne les informations de base, à savoir mode, nombre de variables, noms des variables, mode de ces variables, dim(mtcars) nombre de lignes et de colonnes dimnames(mtcars) nom des variables
La fonction library() Traduction : bibliothèque Exemples: library():donne la liste des « packages » ou bibliothèques disponibles sur la version de R On peut en charger d’autres par le site du CRAN par exemple library(cluster);data(agriculture);permet de charger le data frame « agriculture » du package « cluster » data(agriculture, package=« cluster »); permet aussi de charger ce data frame D=data(agriculture, package=« cluster »); permet aussi de charger ce data frameet de le placer dans D
La fonction library() Exemples: library():donne la liste des packages disponibles On peut en charger d’autres par le CRAN par exemple library(cluster);data(agriculture); permet de charger le data frame « agriculture » du package « cluster » data(agriculture, package=« cluster »); permet aussi de charger ce data frame
Importer des fichiers Pour les lectures et écritures dans un fichier,R utilise le repertoire de travail. getwd():permet de connaître ce repertoire exemple setwd():permet de modifier le repertoire de travail exemple setwd(« C:/data ») R peut lire des données stockées dans un fichier texte (ascii):read.table() la sortie est un data.frame arguments de cette fonction: file= nom du fichier sep= séparateur (espace par défaut) header= booléen (=TRUE si le nom des colonnes est en tête, FALSE sinon) file.choose()
read.table(file=,sep=,header=) Exemple: fichier C:/ArR/fic.txtC:/ArR/fic.txt F=read.table(« C:\\ArR\\fic.txt », sep=« \t»,header=TRUE); Variantes: read.xls() pour la lecture de fichiers excell, read.csv(), read.delim(),read.fwf()…pour des fichiers dans d ’autres formats(Excell,SAS,SPSS), bases de données SQL… data=read.csv(file=file.choose()) permet de choisir le fichier à lire en explorant le contenu de l'ordinateur à l'aide d'une boite de dialogue les fonctions ne sont pas toujours dans le package base,voir la bibliothèque foreign pour plus de fonctions d'import
et exporter Ecriture d’un fichier write.table() write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ",...) arguments: x nom du data frame file= nom du fichier append= booléen si TRUE ajoute au fichier existant, si FALSE écrase le fichier existant col.names= booléen si TRUE écrit les noms de colonnes row.names= idem pour les lignes Variantes write.xls() pour l'écriture au format excell...
Sauvegarder certains objets en binaire ou en ASCII et les restaurer Fonctions: dump(): sauve en ascii des objets R source():recharge les objets sauvés par dump(),par exemple un script sauvegardé sous le nom test.R sera rappelé par source(« test.R », echo=TRUE) save(): comme dump() mais en binaire load(): comme source() mais en binaire
Méthode En pratique, on pourra créer un répertoire de travail par analyse de données, et y déposer: les fichiers de données brutes le fichier script contenant les commandes R le workspace et les fichiers résultats(textes et graphiques)