Sélection de données avec R

Un fichier de données

Travaillons sur une enquête de satisfactions dans un hôpital, récupéré lors d’un cours de FUN (France Unité Numérique). Les fichiers sont disponibles ici.

Par la suite, ces données seront stockées dans la variable satis .

Dans ces données comme souvent, les observations sont en lignes et les variables en colonnes.

Sélection de variables

Pour obtenir tous les noms de variables :

names(satis)


[1] "service" "sexe" "age" "profession"
[5] "amelioration.sante" "amelioration.moral" "recommander" "score.relation"
[9] "score.information"

Pour afficher une variable, par exemple, les âges :

satis$age


[1] 41 29 83 66 84 84 60 85 28 35 84 78 35 34 49 30 64 62 89 48 57 76 56 27 68 54 65 25 61 58
[31] 67 62 37 83 52 69 58 75 59 40 50 83 34 75 69 39 69 58 53 78 82 81 81 66 36 60 45 78 54 84
[61] 59 53 62 46 60 63 67 77 68 52 72 64 67 51 36 78 79 54 69 49 67 65 64 65 72 62 83 49 75 52
[91] 58 50 27 64 45 54 45 80 81 59 64 42 42 41 81 23 79 54 61 39 53 51 32 59 63 69 52 18 64 47
[121] 46 39 43 40 64 44 45 86 49 42 71 32 56 49 31 66 67 70 62 72 55 28 62 48 43 70 80 61 56 80
[151] 21 75 40 53 80 58 51 79 72 40 29 40 32 63 80 29 84 70 87 43 81 28 76 82 67 64 84 95 55 78
[181] 45 40 90 50 85 77 30 97 27 36 61 91 65 63 74 89 77 73 30 36 47 41 34 18 43 66 55 26 32 63
[211] NA 39 43 75 46 42 60 84 69 19 74 23 52 23 61 27 69 51 65 38 69 70 68 60 29 35 57 88 45 18
[241] 32 44 59 NA NA NA 66 45 60 88 47 43 46 39 67 75 79 20 43 63 63 40 62 63 57 26 NA 38 45 34
[271] 44 65 96 NA 43 75 38 44 53 38 48 70 65 49 47 71 76 66 69 60 64 59 29 33 68 64 90 66 72 84
[301] 75 78 55 92 55 53 48 55 74 60 41 75 70 57 88 50 50 25 22 80 70 72 68 54 58 52 41 79 57 26
[331] 59 45 83 47 74 69 67 36 76 83 87 76 84 57 67 75 82 84 22 60 55 40 48 83 55 58 65 91 85 67
[361] 75 46 74 69 60 55 72 70 43 49 92 64 74 75 64 77 82 75 60 64 61 50 42 65 75 90 57 42 66 60
[391] 73 51 85 88 82 50 82 31 39 49 54 32 76 40 60 55 52 52 35 42 40 78 77 49 56 58 39 82 37 81
[421] 55 59 77 68 45 67 51 70 83 72 75 43 29 67 40 37 50 40 67 66 79 65 44 88 56 47 58 75 85 75
[451] 46 49 61 69 38 48 84 60 76 60 80 84 50 45 47 73 75 43 49 56 50 46 63 87 73 63 33 32 21 71
[481] 72 53 30 63 26 91 54 55 78 30 45 44 61 64 44 55 48 57 65 77 72 36 59 19 66 20 21 26 32 68
[511] 57 70 55 39 71 62 22 58 56 70 59 78 77 66 58 31 69 67 70 81 69 30 30 50

Pour n’afficher que les premiers termes, ici les 10 premiers (par défaut 6) :

head(satis$age,10)


[1] 41 29 83 66 84 84 60 85 28 35

Sélection d’observations

Pour afficher une observation, par exemple, la 43 :

satis[43,]


service sexe age profession amelioration.sante amelioration.moral recommander
43 4 0 34 3 2 0 0
score.relation score.information
43 24 22

Pour afficher une liste d’observation, par exemple, les numéros 10,25 et 43 :

satis[c(10,25,43),]


service sexe age profession amelioration.sante amelioration.moral recommander
10 3 1 35 3 3 2 NA
25 4 0 68 5 3 2 2
43 4 0 34 3 2 0 0
score.relation score.information
10 NA NA
25 39 40
43 24 22

Pour afficher une liste d’observation, par exemple, de 25 à 43 :

satis[25:43,]


service sexe age profession amelioration.sante amelioration.moral recommander
25 4 0 68 5 3 2 2
26 4 0 54 3 3 3 2
27 4 0 65 3 2 0 0
28 4 0 25 7 3 3 2
29 4 0 61 3 3 1 2
30 4 1 58 2 3 3 2
31 4 0 67 4 3 1 2
32 4 0 62 3 NA 2 1
33 4 0 37 3 3 1 2
34 4 0 83 NA NA NA NA
35 4 0 52 3 3 3 2
36 4 0 69 3 3 1 2
37 4 0 58 3 1 1 2
38 4 0 75 3 3 3 2
39 4 0 59 6 2 1 2
40 4 1 40 NA NA NA NA
41 4 1 50 NA NA NA NA
42 4 0 83 NA NA NA NA
43 4 0 34 3 2 0 0
score.relation score.information
25 39 40
26 39 22
27 22 25
28 35 36
29 38 38
30 38 37
31 37 31
32 33 21
33 33 29
34 NA NA
35 40 37
36 39 28
37 40 40
38 37 39
39 34 32
40 NA NA
41 NA NA
42 NA NA
43 24 22

Pour afficher une liste d’observation, selon un critère, par exemple, les âges non attribués :

satis[is.na(satis$age),]


service sexe age profession amelioration.sante amelioration.moral recommander
211 5 0 NA NA NA NA NA
244 5 0 NA NA NA NA NA
245 5 1 NA NA NA NA NA
246 5 0 NA NA NA NA NA
267 5 0 NA NA NA NA NA
274 5 1 NA NA NA NA NA
score.relation score.information
211 NA NA
244 NA NA
245 NA NA
246 NA NA
267 NA NA
274 NA NA

Pour afficher une liste d’observation, selon un critère, par exemple, les personnes de 19 ans (avec l’âge fourni) :

satis[satis$age==19 & !is.na(satis$age),]


service sexe age profession amelioration.sante amelioration.moral recommander
220 5 1 19 7 2 2 1
504 8 1 19 7 2 1 0
score.relation score.information
220 NA NA
504 25 20

L’instruction subset

Cette instruction permet de trier dans une donnée des variables selon un critère général.

Pour sélectionner le sexe des personnes de 19 ans :

subset(satis,satis$age==19,"sexe")


sexe
220 1
504 1

Pour sélectionner le sexe et la profession des personnes de 30 ans :

subset(satis,satis$age==30,c(sexe,profession))


sexe profession
16 0 NA
187 0 4
199 0 5
483 1 5
490 1 5
532 1 4
533 1 8