Les structures de données
Les vecteurs et les tables
Il n'y a pas de nombre isole sous R, il n'y a que des vecteurs (un nombre isole est un vecteur de taille 1). Un vecteur est une liste d'éléments simples (numériques, booléens, chaînes de caractères) tous du même type.
dfinition d'un vecteur
v<-c(2,13,41)
v <- c(c1=2,c2=13,c3=41)# on nomme le eemnts d'un vecteur
length(v) # la longueur du vecteur
print(names(v))# afficher les noms des leents du vecteur
v[1]# accde al'elmet 1 du vecteur par son indice
v["c1"] # par son nom
1/v # donne un vecteur dont chaque coordonne est l'inverse
diff(v) : #vecteur des diffrences entre un element et l'element precedant de taille length(v) - 1)
v[1:5]# affiche les 5 premiers elements, si la longueur de v est inferieur a 5, des NA sont affiches
v[v>10]<-0# remplace tous les elements superieurs a 10 par 0
# application d'une fonction a chaque element
sapply(v,FUN=function(x){x^2+1})
Les matrices
Une matrice est un tableau a deux dimension. Les matrices sont données par colonne.
matc<-matrix(c(1,2,3,4),nrow=2,ncol=2)# place les valeurs colonne par colonne
matl<-matrix(c(1,2,3,4),nrow=2,ncol=2, byrow=TRUE)# place les valeurs ligne par ligne
x<-as.vector(matc)# transforme la matrice en un vecteur ligne, donne 1 2 3 4
x<-as.vector(matl)# transforme la matrice en un vecteur ligne, donne 1 3 2 4
# on peut nommer les lignes et les colonnes
MATRI <- matrix(c(0,2,3,0,1,4), nrow = 3, dimnames = list(c("L1", "L2", "L3"), c("C1", "C2")))
nrow(MATRI) # pour avoir le nombre de lignes
ncol(MATRI) # pour avoir le nombre de colonnes
diag(MATRI) # renvoie un vecteur correspondant la diagonale de la matrice MATRI
diag(v) # renvoie une matrice diagonale de, dim =length(v)xlength(v),
#dont les eemnts sont ceux du vecteur v.
diag(k)# (k etat un scalaire) : renvoie une matrice identite caree dedimension k
diag(k,n) # renvoie une matrice diagonale carree de imension n et dont les element dagonaux sont egaux a k
M<-mac %*% matl # multiplication matricielle
P<-matc*matl # c'est la multiplication terme a terme
sole(matc) : #calcule l'inverse d'une matrice carree
matcvp<-egen(matc) # calcule les valeurs propres et les vecteurs propres et renvoie une liste..
Les data.frame
Dans les sciences expérimentales , les observations notées ou mesurées ou notées se représentent sous forme d'un tableau :
Chaque ligne représente un individu
Chaque colonne représente une variable les variables peuvent être de différents types (numérique, chaîne de caractères, ... )
L'hétérogénéité des données ne permet pas de représenter ces observations sous forme de matrice. D'où la nécessité d'utiliser les data.frame.
matri<-sample(100:200,10)
nom<-LETTERS[1:10]
notemath<-round(rnorm(10,10,3))
notephys<-round(rnorm(10,8,3))
moyenne<-(3*notemath+2*notephys)/5
resultat<-moyenne>=10
affichage<-ifelse (resultat==TRUE, resultat<-'Admis',resultat<-'non admis')
examen<-data.frame(matri,nom,notemath,notephys,moyenne,affichage)
Les listes
Les listes sont le moyen de construire des structures de données arbitrairement complexes. Une liste est un tableau ordonne d'éléments qui peuvent être hétérogènes. un élément d'une liste peut être un vecteur, une liste, ...
L=list(marque= 'R',puissance =c(3:15),energie=c('G','SP','GPL','ELEC'),prix =runif(10,10000,60000))
Maliste<-list(matricule=matri,noms=nom,matrice= matrix(c(0,2,3,0,1,4), nrow = 3, dimnames = list(c("L1", "L2", "L3"),