96
Le logiciel R - Maˆ ıtriser le langage
1 1
H
75 1
H
182
2 2
F
68 2
F
165
3 3
F
48 3
F
160
4 4
H
72 4
H
178
Cela fonctionne, mais il est gˆ enant que les colonnes Id et SEXE soient dupliqu´ ees. Une fonction tr` es utile dans ce contexte est la fonction merge() :
> merge(X1,X2)
Id SEXE Poids Taille
1 1
H
75
182
2 2
F
68
165
3 3
F
48
160
4 4
H
72
178
Maintenant, supposons que les individus ne soient pas class´ es de la mˆ eme
mani` ere dans les deux tables.
X1=
Id SEXE Poids
1
H
75
2
F
68
3
F
48
4
H
72
∪
X3=
Id SEXE Taille
2
F
165
1
H
182
4
H
178
3
F
160
Dans ce cas, la fonction cbind() ne pourra pas ˆ etre utilis´ ee alors que l’instruction merge() fonctionne encore :
> X3 <- data.frame(Id=c(2,1,4,3),SEXE=c("F","H","H","F"),
+
Taille=c(165,182,178,160))
> merge(X1,X3)
Id SEXE Poids Taille
1 1
H
75
182
2 2
F
68
165
3 3
F
48
160
4 4
H
72
178
Vous aurez donc not´ e que, par d´ efaut, la fonction merge() permet de fusionner deux data.frames. D´ enotons par X et par Y les deux data.frames que
nous d´ esirons fusionner, et par Z le data.frame r´ esultant de la fusion de X et
de Y. La fusion est effectu´ ee sur la base des colonnes de ces deux data.frames
ayant les mˆ emes noms. On parlera de « colonnes communes » pour d´ esigner
ces colonnes. Il est possible de sp´ ecifier (forcer) les colonnes que l’on d´ esire
consid´ erer comme communes au moyen du param` etre by. La valeur ` a fournir
` a ce param` etre consiste ou bien en un vecteur de noms, ou bien en un vecteur
d’indices, ou encore en un vecteur de logiques. Les autres colonnes seront alors
consid´ er´ ees par merge() comme ´ etant diff´ erentes, et ce mˆ eme si elles portent
le mˆ eme nom. Le fonctionnement de la fonction merge() est alors le suivant :
Le logiciel R - Maˆ ıtriser le langage
1 1
H
75 1
H
182
2 2
F
68 2
F
165
3 3
F
48 3
F
160
4 4
H
72 4
H
178
Cela fonctionne, mais il est gˆ enant que les colonnes Id et SEXE soient dupliqu´ ees. Une fonction tr` es utile dans ce contexte est la fonction merge() :
> merge(X1,X2)
Id SEXE Poids Taille
1 1
H
75
182
2 2
F
68
165
3 3
F
48
160
4 4
H
72
178
Maintenant, supposons que les individus ne soient pas class´ es de la mˆ eme
mani` ere dans les deux tables.
X1=
Id SEXE Poids
1
H
75
2
F
68
3
F
48
4
H
72
∪
X3=
Id SEXE Taille
2
F
165
1
H
182
4
H
178
3
F
160
Dans ce cas, la fonction cbind() ne pourra pas ˆ etre utilis´ ee alors que l’instruction merge() fonctionne encore :
> X3 <- data.frame(Id=c(2,1,4,3),SEXE=c("F","H","H","F"),
+
Taille=c(165,182,178,160))
> merge(X1,X3)
Id SEXE Poids Taille
1 1
H
75
182
2 2
F
68
165
3 3
F
48
160
4 4
H
72
178
Vous aurez donc not´ e que, par d´ efaut, la fonction merge() permet de fusionner deux data.frames. D´ enotons par X et par Y les deux data.frames que
nous d´ esirons fusionner, et par Z le data.frame r´ esultant de la fusion de X et
de Y. La fusion est effectu´ ee sur la base des colonnes de ces deux data.frames
ayant les mˆ emes noms. On parlera de « colonnes communes » pour d´ esigner
ces colonnes. Il est possible de sp´ ecifier (forcer) les colonnes que l’on d´ esire
consid´ erer comme communes au moyen du param` etre by. La valeur ` a fournir
` a ce param` etre consiste ou bien en un vecteur de noms, ou bien en un vecteur
d’indices, ou encore en un vecteur de logiques. Les autres colonnes seront alors
consid´ er´ ees par merge() comme ´ etant diff´ erentes, et ce mˆ eme si elles portent
le mˆ eme nom. Le fonctionnement de la fonction merge() est alors le suivant :
