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.

1
dfinition d'un vecteur
2
v<-c(2,13,41)
3
v <- c(c1=2,c2=13,c3=41)# on nomme le eemnts d'un vecteur
4
length(v) # la longueur du vecteur
1
print(names(v))# afficher les noms des leents du vecteur
1
v[1]# accde al'elmet 1 du vecteur par son indice
1
v["c1"] # par son nom
1
1/v # donne un vecteur dont chaque coordonne est l'inverse
1
diff(v) : #vecteur des diffrences entre un element et l'element precedant de taille length(v) - 1)
2
v[1:5]# affiche les 5 premiers elements, si la longueur de v est inferieur a 5, des NA sont affiches
1
v[v>10]<-0# remplace tous les elements superieurs a 10 par 0
2
# application d'une fonction a chaque element
3
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.

1
matc<-matrix(c(1,2,3,4),nrow=2,ncol=2)# place les valeurs colonne par colonne
2
matl<-matrix(c(1,2,3,4),nrow=2,ncol=2, byrow=TRUE)# place les valeurs ligne par ligne
3
x<-as.vector(matc)# transforme la matrice en un vecteur ligne, donne 1 2 3 4
4
x<-as.vector(matl)# transforme la matrice en un vecteur ligne, donne 1 3 2 4
5
# on peut nommer les lignes et les colonnes
6
MATRI <- matrix(c(0,2,3,0,1,4), nrow = 3, dimnames = list(c("L1", "L2", "L3"), c("C1", "C2")))
7
nrow(MATRI) # pour avoir le nombre de lignes
8
ncol(MATRI) # pour avoir le nombre de colonnes
9
diag(MATRI) # renvoie un vecteur correspondant  la diagonale de la matrice MATRI
10
diag(v) # renvoie une matrice diagonale de, dim =length(v)xlength(v),
11
#dont les eemnts sont ceux du vecteur v.
12
diag(k)# (k etat un scalaire) : renvoie une matrice identite caree dedimension k
13
diag(k,n) # renvoie une matrice diagonale carree de imension n et dont les element dagonaux sont egaux a k
14
M<-mac %*% matl # multiplication matricielle
15
P<-matc*matl # c'est la multiplication terme a terme
16
sole(matc) : #calcule l'inverse d'une matrice carree
17
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.

1
matri<-sample(100:200,10)
2
nom<-LETTERS[1:10]
3
notemath<-round(rnorm(10,10,3))
4
notephys<-round(rnorm(10,8,3))
5
moyenne<-(3*notemath+2*notephys)/5
6
resultat<-moyenne>=10
7
affichage<-ifelse (resultat==TRUE, resultat<-'Admis',resultat<-'non admis')
8
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, ...

1
L=list(marque= 'R',puissance =c(3:15),energie=c('G','SP','GPL','ELEC'),prix =runif(10,10000,60000))
2
Maliste<-list(matricule=matri,noms=nom,matrice= matrix(c(0,2,3,0,1,4), nrow = 3, dimnames = list(c("L1", "L2", "L3"),