Chapitre 3. Manipulation de donn´ ees, fonctions
97
– pour chaque ligne (individu) du data.frame X, la fonction merge() commence par comparer les ´ el´ ements de cette ligne ` a ceux de chacune des
lignes de Y, mais uniquement sur le sous-ensemble des colonnes communes ;
– si elle trouve un appariement parfait, elle consid` ere alors qu’il s’agit du
mˆ eme individu : cet individu est alors ajout´ e `
a Z puis compl´ et´ e avec les
valeurs des colonnes non communes de X, puis avec les valeurs des colonnes
non communes de Y ;
– si l’appariement n’est pas parfait, il s’agit alors de deux individus diff´ erents qui sont soit ajout´ es chacun sur une ligne diff´ erente de Z et compl´ et´ es
par des NA (si le param` etre all prend la valeur TRUE), soit retir´ es (si le
param` etre all prend la valeur FALSE, ce qui est le comportement par
d´ efaut) ;
– l’op´ eration se poursuit alors pour la ligne suivante, et ce jusqu’` a la derni` ere ligne.
Voici un exemple qui permettra de clarifier les choses.
> X <- data.frame(SEXE=c("F","H","H","F"),Taille=c(165,182,
+
178,160),Poids=c(50,65,67,55),Revenu=c(80,90,60,50))
> Y <- data.frame(SEXE=c("F","H","H","F"),Taille=c(165,182,
+
178,160),Poids=c(55,65,67,85),Salaire=c(70,90,40,40),
+
row.names=4:7)
> X
SEXE Taille Poids Revenu
1
F
165
50
80
2
H
182
65
90
3
H
178
67
60
4
F
160
55
50
> Y
SEXE Taille Poids Salaire
4
F
165
55
70
5
H
182
65
90
6
H
178
67
40
7
F
160
85
40
> merge(X,Y,by=c("SEXE","Poids"))
SEXE Poids Taille.x Revenu Taille.y Salaire
1
F
55
160
50
165
70
2
H
65
182
90
182
90
3
H
67
178
60
178
40
> merge(X,Y,by=c("SEXE","Poids"),all=TRUE)
SEXE Poids Taille.x Revenu Taille.y Salaire
1
F
50
165
80
NA
NA
2
F
55
160
50
165
70
3
F
85
NA
NA
160
40
4
H
65
182
90
182
90
5
H
67
178
60
178
40
Précédent

- 131/701

Suivant