Annexe C Solutions des exercices▲
Solution de l'exercice 2.1
R>
c
(12
, 13
, 14
, 15
, 16
)
[
1
]
12
13
14
15
16
Solution de l'exercice 2.2
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
R>
c
(1
, 2
, 3
, 4
)
[
1
]
1
2
3
4
R>
1
:
4
[
1
]
1
2
3
4
R>
c
(1
, 2
, 3
, 4
, 8
, 9
, 10
, 11
)
[
1
]
1
2
3
4
8
9
10
11
R>
c
(1
:
4
, 8
:
11
)
[
1
]
1
2
3
4
8
9
10
11
R>
c
(2
, 4
, 6
, 8
)
[
1
]
2
4
6
8
R>
1
:
4
*
2
[
1
]
2
4
6
8
Solution de l'exercice 2.3
2.
3.
4.
5.
R>
chef <-
c
(1200
, 1180
, 1750
, 2100
)
R>
conjoint <-
c
(1450
, 1870
, 1690
, 0
)
R>
nb.personnes <-
c
(4
, 2
, 3
, 2
)
R>
(chef +
conjoint)/
nb.personnes
[
1
]
662.500
1525.000
1146.667
1050.000
Solution de l'exercice 2.4
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
R>
chef <-
c
(1200
, 1180
, 1750
, 2100
)
R>
min
(chef)
[
1
]
1180
R>
max
(chef)
[
1
]
2100
R>
chef.na <-
c
(1200
, 1180
, 1750
, NA
)
R>
min
(chef.na)
[
1
]
NA
R>
max
(chef.na)
[
1
]
NA
R>
min
(chef.na, na.rm
=
TRUE
)
[
1
]
1180
R>
max
(chef.na, na.rm
=
TRUE
)
[
1
]
1750
Solution de l'exercice 3.5
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
R>
library
(rgrs)
R>
data
(hdv2003)
R>
df
<-
hdv2003
R>
str
(df
)
'data.frame'
:
2000
obs. of 20
variables:
$
id :
int 1
2
3
4
5
6
7
8
9
10
...
$
age :
int 28
23
59
34
71
35
60
47
20
28
...
$
sexe :
Factor w/
2
levels
"Homme"
,"Femme"
:
2
2
1
1
2
2
2
1
2
1
...
$
nivetud :
Factor w/
8
levels
"N'a jamais fait d'etudes"
,..:
8
NA
3
8
3
6
3
6
NA
7
...
$
poids :
num 2634
9738
3994
5732
4329
...
$
occup :
Factor w/
7
levels
"Exerce une profession"
,..:
1
3
1
1
4
1
6
1
3
1
...
$
qualif :
Factor w/
7
levels
"Ouvrier specialise"
,..:
6
NA
3
3
6
6
2
2
NA
7
...
$
freres.soeurs:
int 8
2
2
1
0
5
1
5
4
2
...
$
clso :
Factor w/
3
levels
"Oui"
,"Non"
,"Ne sait pas"
:
1
1
2
2
1
2
1
2
1
2
...
$
relig :
Factor w/
6
levels
"Pratiquant regulier"
,..:
4
4
4
3
1
4
3
4
3
2
...
$
trav.imp :
Factor w/
4
levels
"Le plus important"
,..:
4
NA
2
3
NA
1
NA
4
NA
3
...
$
trav.satisf :
Factor w/
3
levels
"Satisfaction"
,..:
2
NA
3
1
NA
3
NA
2
NA
1
...
$
hard.rock :
Factor w/
2
levels
"Non"
,"Oui"
:
1
1
1
1
1
1
1
1
1
1
...
$
lecture.bd :
Factor w/
2
levels
"Non"
,"Oui"
:
1
1
1
1
1
1
1
1
1
1
...
$
peche.chasse :
Factor w/
2
levels
"Non"
,"Oui"
:
1
1
1
1
1
1
2
2
1
1
...
$
cuisine :
Factor w/
2
levels
"Non"
,"Oui"
:
2
1
1
2
1
1
2
2
1
1
...
$
bricol :
Factor w/
2
levels
"Non"
,"Oui"
:
1
1
1
2
1
1
1
2
1
1
...
$
cinema :
Factor w/
2
levels
"Non"
,"Oui"
:
1
2
1
2
1
2
1
1
2
2
...
$
sport :
Factor w/
2
levels
"Non"
,"Oui"
:
1
2
2
2
1
2
1
1
1
2
...
$
heures.tv :
num 0
1
0
2
3
2
2.9
1
2
2
...
Solution de l'exercice 3.6
Utilisez la fonction suivante et corrigez manuellement les erreurs :
R>
df.ok <-
edit
(df
)
Attention à ne pas utiliser la fonction fix dans ce cas, celle-ci modifierait directement le contenu de df.
Puis utilisez la fonction head :
R>
head
(df.ok, 4
)
Solution de l'exercice 3.7
2.
3.
4.
R>
summary
(df
$
age)
R>
hist
(df
$
age, breaks
=
10
, main
=
"Répartition des âges"
, xlab
=
"Âge"
, ylab
=
"Effectif"
)
R>
boxplot
(df
$
age)
R>
plot
(table
(df
$
age), main
=
"Répartition des âges"
, xlab
=
"Âge"
, ylab
=
"Effectif"
)
Solution de l'exercice 3.8
2.
3.
4.
R>
table
(df
$
trav.imp)
R>
summary
(df
$
trav.imp)
R>
freq
(df
$
trav.imp)
R>
dotchart
(table
(df
$
trav.imp))
Solution de l'exercice 4.9
Utilisez la fonction read.table ou l'un de ses dérivés, en fonction du tableur utilisé et du format d'enregistrement.
Pour vérifier que l'importation s'est bien passée, on peut utiliser les fonctions str, dim, éventuellement edit et faire quelques tris à plat.
Solution de l'exercice 4.10
Utilisez la fonction read.dbf de l'extension foreign.
Solution de l'exercice 5.11
2.
3.
4.
5.
R>
library
(rgrs)
R>
data
(hdv2003)
R>
d <-
hdv2003
R>
d <-
renomme.variable(d, "clso"
, "classes.sociales"
)
R>
d <-
renomme.variable(d, "classes.sociales"
, "clso"
)
Solution de l'exercice 5.12
2.
3.
4.
R>
d$
clso <-
factor
(d$
clso, levels
=
c
("Non"
, "Ne sait pas"
, "Oui"
))
R>
table
(d$
clso)
Non Ne sait pas Oui
1037
27
936
Solution de l'exercice 5.13
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
R>
d$
cinema[
1
:
3
]
[
1
]
Non Oui Non
Levels:
Non Oui
R>
d$
lecture.bd[
12
:
30
]
[
1
]
Non Non Non Non Non Non Non Non Non Non Non Non Non Non Non Non Non
[
18
]
Non Non
Levels:
Non Oui
R>
d[
c
(5
, 12
), c
(4
, 8
)]
nivetud freres.soeurs
5
Derniere annee d'etudes primaires 0
12
2eme cycle
4
R>
longueur <-
length
(d$
age)
R>
tail
(d$
age, 4
)
[
1
]
46
24
24
66
Solution de l'exercice 5.14
2.
3.
4.
5.
6.
R>
subset
(d, lecture.bd ==
"Oui"
, select
=
c
(age, sexe))
R>
subset
(d, occup !=
"Chômeur"
, select
=
-
cinema)
R>
subset
(d, age >=
45
&
hard.rock ==
"Oui"
, select
=
id)
R>
subset
(d, sexe ==
"Femme"
&
age >=
25
&
age <=
40
&
sport ==
"Non"
)
R>
subset
(d, sexe ==
"Homme"
&
freres.soeurs >=
2
&
freres.soeurs <=
+
4
&
(cuisine ==
"Oui"
|
bricol ==
"Oui"
))
Solution de l'exercice 5.15
2.
3.
4.
5.
6.
7.
8.
9.
R>
d.bd.oui <-
subset
(d, lecture.bd ==
"Oui"
)
R>
d.bd.non <-
subset
(d, lecture.bd ==
"Non"
)
R>
mean
(d.bd.oui$
heures.tv)
[
1
]
1.763830
R>
mean
(d.bd.non$
heures.tv, na.rm
=
TRUE
)
[
1
]
2.258214
R>
tapply
(d$
heures.tv, d$
lecture.bd, mean
, na.rm
=
TRUE
)
Non Oui
2.258214
1.763830
Solution de l'exercice 5.16
2.
3.
4.
5.
6.
R>
d$
fs.char <-
as.character
(d$
freres.soeurs)
R>
d$
fs.fac <-
factor
(d$
fs.char)
R>
d$
fs.num <-
as.numeric
(as.character
(d$
fs.char))
R>
table
(d$
fs.num ==
d$
freres.soeurs)
TRUE
2000
Solution de l'exercice 5.17
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
R>
d$
fs1 <-
cut
(d$
freres.soeurs, 5
)
R>
table
(d$
fs1)
(-
0.022
,4.39
]
(4.39
,8.8
]
(8.8
,13.2
]
(13.2
,17.6
]
(17.6
,22
]
1495
396
97
9
3
R>
d$
fs2 <-
cut
(d$
freres.soeurs, breaks
=
c
(0
, 2
, 4
, 19
), include.lowest
=
TRUE
,
+
labels
=
c
("de 0 à 2"
, "de 2 à 4"
, "plus de 4"
))
R>
table
(d$
fs2)
de
0
à 2
de
2
à 4
plus de
4
1001
494
504
R>
d$
fs3 <-
quant.cut(d$
freres.soeurs, 3
)
R>
table
(d$
fs3)
[
0
,2
) [
2
,4
) [
4
,22
]
574
711
715
Solution de l'exercice 5.18
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
R>
d$
trav.imp2cl[
d$
trav.imp ==
"Le plus important"
|
d$
trav.imp ==
+
"Aussi important que le reste"
]
<-
"Le plus ou aussi important"
R>
d$
trav.imp2cl[
d$
trav.imp ==
"Moins important que le reste"
|
+
d$
trav.imp ==
"Peu important"
]
<-
"moins ou peu important"
R>
table
(d$
trav.imp)
Le plus important Aussi important que le reste
29
259
Moins important que le reste Peu important
708
52
R>
table
(d$
trav.imp2cl)
Le plus ou aussi important moins ou peu important
288
760
R>
table
(d$
trav.imp, d$
trav.imp2cl)
Le plus ou aussi important
Le plus important 29
Aussi important que le reste 259
Moins important que le reste 0
Peu important 0
moins ou peu important
Le plus important 0
Aussi important que le reste 0
Moins important que le reste 708
Peu important 52
R>
d$
relig.4cl <-
as.character
(d$
relig)
R>
d$
relig.4cl[
d$
relig ==
"Pratiquant regulier"
|
d$
relig ==
+
"Pratiquant occasionnel"
]
<-
"Pratiquant"
R>
d$
relig.4cl[
d$
relig ==
"NSP ou NVPR"
]
<-
NA
R>
table
(d$
relig.4cl, d$
relig, exclude =
NULL
)
Pratiquant regulier Pratiquant occasionnel
Appartenance sans pratique 0
0
Ni croyance ni appartenance 0
0
Pratiquant 266
442
Rejet 0
0
<
NA
>
0
0
Appartenance sans pratique
Appartenance sans pratique 760
Ni croyance ni appartenance 0
Pratiquant 0
Rejet 0
<
NA
>
0
Ni croyance ni appartenance Rejet
Appartenance sans pratique 0
0
Ni croyance ni appartenance 399
0
Pratiquant 0
0
Rejet 0
93
<
NA
>
0
0
NSP ou NVPR <
NA
>
Appartenance sans pratique 0
0
Ni croyance ni appartenance 0
0
Pratiquant 0
0
Rejet 0
0
<
NA
>
40
0
Solution de l'exercice 5.19
Attention, l'ordre des opérations a toute son importance !
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
R>
d$
var
<-
"Autre"
R>
d$
var
[
d$
sexe ==
"Femme"
&
d$
bricol ==
"Oui"
]
<-
"Femme faisant du bricolage"
R>
d$
var
[
d$
sexe ==
"Homme"
&
d$
age >
30
]
<-
"Homme de plus de 30 ans"
R>
d$
var
[
d$
sexe ==
"Homme"
&
d$
age >
40
&
d$
lecture.bd ==
"Oui"
]
<-
"Homme de plus de 40 ans lecteur de BD"
R>
table
(d$
var
)
Autre
925
Femme faisant du bricolage
338
Homme de
plus de
30
ans
728
Homme de
plus de
40
ans lecteur de
BD
9
R>
table
(d$
var
, d$
sexe)
Homme Femme
Autre 162
763
Femme faisant du bricolage 0
338
Homme de
plus de
30
ans 728
0
Homme de
plus de
40
ans lecteur de
BD 9
0
R>
table
(d$
var
, d$
bricol)
Non Oui
Autre 847
78
Femme faisant du bricolage 0
338
Homme de
plus de
30
ans 298
430
Homme de
plus de
40
ans lecteur de
BD 2
7
R>
table
(d$
var
, d$
lecture.bd)
Non Oui
Autre 905
20
Femme faisant du bricolage 324
14
Homme de
plus de
30
ans 724
4
Homme de
plus de
40
ans lecteur de
BD 0
9
R>
table
(d$
var
, d$
age >
30
)
FALSE
TRUE
Autre 283
642
Femme faisant du bricolage 68
270
Homme de
plus de
30
ans 0
728
Homme de
plus de
40
ans lecteur de
BD 0
9
R>
table
(d$
var
, d$
age >
40
)
FALSE
TRUE
Autre 417
508
Femme faisant du bricolage 152
186
Homme de
plus de
30
ans 163
565
Homme de
plus de
40
ans lecteur de
BD 0
9
Solution de l'exercice 5.20
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
R>
d.ord <-
d[
order
(d$
freres.soeurs), ]
R>
d.ord <-
d[
order
(d$
heures.tv, decreasing =
TRUE
), c
("sexe"
, "heures.tv"
)]
R>
head
(d.ord, 10
)
sexe heures.tv
288
Femme 12
391
Femme 12
1324
Homme 11
1761
Femme 11
100
Femme 10
236
Femme 10
421
Homme 10
426
Femme 10
841
Femme 10
1075
Homme 10