Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parGilles Ruel Modifié depuis plus de 8 années
1
Cours 2 Vecteurs, matrices,listes,séries temporelles, data frames
2
Génération de matrices 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 ex: M=matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL) 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 M[c(1,5,4),]: sélection de plusieurs lignes (1,5 et 4) Dimension d’une matrice: dim(): renvoie la dimension de la matrice. On peut aussi imposer cette dimension
3
Génération de matrices(suite) exemple: v=1:12; M=matrix(v);dim(M)=c(3,4);M; [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 Indice linéaire (par colonne) M[v],M[-v] exemple:M[-3] donne la matrice privée de son troisième élément, soit un vecteur M[M[,1]>0,]:sélectionne la sous matrice pour laquelle les valeurs dans la première colonne sont positives
4
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
5
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)
6
Opérations sur les matrices (suite) 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), ou les deux ( margin=c(1,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
7
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] 0 1 2 3 4 5 6 7 8 9 $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;
8
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....
9
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
10
t=ts(matrix(rpois(36,5),12,3),start=c(1961,1), frequency=12) Series 1 Series 2 Series 3 Jan 1961 7 6 8 Feb 1961 7 8 4 Mar 1961 4 2 5 Apr 1961 3 3 4 May 1961 7 6 10 Jun 1961 4 6 6 Jul 1961 5 5 4 Aug 1961 3 3 6 Sep 1961 7 3 3 Oct 1961 4 3 7 Nov 1961 7 2 7 Dec 1961 3 4 4
11
plot(t)
12
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(=rep(1,10),y=1:10,fac=sample(L,10, repl=TRUE)); La troisième colonne est D[,3]ou D[,”fac”]ouD$fac C’est le type par défaut résultant de la lecture de fichiers externes et nécéssaire pour exporter des tableaux de R x y fac 1 1 1 C 2 1 2 C 3 1 3 A 4 1 4 B 5 1 5 A 6 1 6 A 7 1 7 B 8 1 8 A 9 1 9 B 10 1 10 C
13
Fonctions pour les data frames data.frame(): names(),colnames()rownames()liste 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 1 1 1 B 1 2 1 2 A 2 3 1 3 B 1 4 1 4 A 2 5 1 5 C 1 6 1 6 C 2 7 1 7 B 1 8 1 8 C 2 9 1 9 B 1 10 1 10 A 2
14
La fonction data() : Cette fonction permet de lire des données internes un data.frame ou de lister les data frame existants Exemples: data() # liste de tous les data frame dans le package par défaut « datasets » data(USArrests) # charge le data frame USArrests help(USArrests) # donne des informations sur le data frame « USArrests », si elles existent data(package =.packages(all.available = TRUE))# Donne la liste de tous les data frames de tous les packages disponibles try(data(package = "rpart") )# liste des data frame dans le package rpart
15
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
16
Importer des fichiers ascii Pour les lectures et écritures dans un fichier, R utilise le repertoire de travail. getwd():permet de connaître ce repertoire 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)
17
Exemple: fichier c:/ArR/fic.txt read.table(file=,sep=,header=) F=read.table(« c://ArR//fic.txt », sep=« \t»,header=TRUE); Variantes:read.csv(), read.delim(),read.fwf() On peut importer des fichiers dans d ’autres formats, spécifiques à certains logiciels, (SAS,SPSS, bases de données SQL), à l'aide du package foreign On peut importet directement des feuilles Excell
18
et exporter Ecriture d’un fichier write.table() arguments: file= nom du fichier append= booléen si TRUE ajoute au fichier existant, si FALSE ecrase le fichier existant col.names= booléen si TRUE écrit les noms de colonnes row.names= idem pour les lignes
19
Modes ouiNumérique, caractère, complexe logiqueListe list ouiNumérique,caractère,complexe logiqueSérie temporelle ts OuiNumérique,caractère,complexe logiqueData.frame NonNumérique,caractère,complexe logiqueMatrice matrix NonNumérique,caractère,complexe logiqueTableau array NonNumérique,caractèreFacteur factor NonNumérique,caractère,complexe logiqueVecteur vector Plusieurs modesModes possibles
20
Extensions de R, les packages ● Les packages R fournissent un ensemble cohérent de fonctions supplémentaires, spécialisées dans un certain domaine ● Souvent accompagnés d'autres jeux de données ● Quelquefois certaines fonctions classiques sont redéfinies
21
Gestion de packages ● Installation install.packages(«... ») ● Mise à jour update.packages()
22
Génération de nombres aléatoires Exemples: sample():échantillon, tirages avec ou sans remise, permutations exemples: v1= sample(1:10) : permutation de{1,2,..,10} v2= sample(1:10,3) : tirage sans remise (par défaut )de 3 éléments parmi 10 v3= sample(1:2,10,replace=TRUE) : tirage avec remise de 10 valeurs 1 ou 2 au hasard pour un tirage non uniforme on précise le vecteur probabilité(p1,…pn) avec pi=1. exemple:v4=sample(1:5,3,prob=c(0.1,0.2,0.1,0.5,0.1)) rnorm(100):génère 100 observations issues de la loi normale de paramètres 0 et 1 (par défaut) rnorm(100, mean=2,var=3): génére 100 observations issues de la loi normale de paramètres 2 et 3
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.