98
Le logiciel R - Maˆ ıtriser le langage
Attention
Vous aurez not´ e que, par d´ efaut, la fonction merge() ne prend pas en
compte les noms des individus dans les data.frames X et Y pour d´ eterminer
les individus communs. Il est toutefois possible de contourner ce fonctionnement soit en ajoutant une colonne Id ` a X et ` a Y pour identifier les individus,
soit en utilisant le nom "row.names" comme valeur du param` etre by.
> merge(X,Y,by=c("row.names","Poids"))
Row.names Poids SEXE.x Taille.x Revenu SEXE.y Taille.y
1
4
55
F
160
50
F
165
Salaire
1
7 0
> merge(X,Y,by=c("row.names","Poids"),all=TRUE)
Row.names Poids SEXE.x Taille.x Revenu SEXE.y Taille.y
1
1
50
F
165
80
NA
2
2
65
H
182
90
NA
3
3
67
H
178
60
NA
4
4
55
F
160
50
F
165
5
5
65
NA
NA
H
182
6
6
67
NA
NA
H
178
7
7
85
NA
NA
F
160
Salaire
1
N A
2
N A
3
N A
4
7 0
5
9 0
6
4 0
7
4 0
• Fusion de lignes
La fonction g´ en´ erique est rbind().
> rbind(1:4,5:8)
[,1] [,2] [,3] [,4]
[1,]
1
2
3
4
[2,]
5
6
7
8
La fonction smartbind() du package gtools est plus ´ evolu´ ee comme on
peut le voir sur l’exemple suivant :
> require("gtools")
> df1 <- data.frame(A=1:5, B=LETTERS[1:5])
# Les crochets []
# permettant
# l’extraction
> df2 <- data.frame(A=6:10, E=letters[1:5]) # d’éléments seront
Le logiciel R - Maˆ ıtriser le langage
Attention
Vous aurez not´ e que, par d´ efaut, la fonction merge() ne prend pas en
compte les noms des individus dans les data.frames X et Y pour d´ eterminer
les individus communs. Il est toutefois possible de contourner ce fonctionnement soit en ajoutant une colonne Id ` a X et ` a Y pour identifier les individus,
soit en utilisant le nom "row.names" comme valeur du param` etre by.
> merge(X,Y,by=c("row.names","Poids"))
Row.names Poids SEXE.x Taille.x Revenu SEXE.y Taille.y
1
4
55
F
160
50
F
165
Salaire
1
7 0
> merge(X,Y,by=c("row.names","Poids"),all=TRUE)
Row.names Poids SEXE.x Taille.x Revenu SEXE.y Taille.y
1
1
50
F
165
80
NA
2
2
65
H
182
90
NA
3
3
67
H
178
60
NA
4
4
55
F
160
50
F
165
5
5
65
NA
NA
H
182
6
6
67
NA
NA
H
178
7
7
85
NA
NA
F
160
Salaire
1
N A
2
N A
3
N A
4
7 0
5
9 0
6
4 0
7
4 0
• Fusion de lignes
La fonction g´ en´ erique est rbind().
> rbind(1:4,5:8)
[,1] [,2] [,3] [,4]
[1,]
1
2
3
4
[2,]
5
6
7
8
La fonction smartbind() du package gtools est plus ´ evolu´ ee comme on
peut le voir sur l’exemple suivant :
> require("gtools")
> df1 <- data.frame(A=1:5, B=LETTERS[1:5])
# Les crochets []
# permettant
# l’extraction
> df2 <- data.frame(A=6:10, E=letters[1:5]) # d’éléments seront
