Modification 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.

Transformation de variables quantitatives en variables qualitatives

On utilise la fonction factor qui transforme les valeurs numériques ordonnées en niveaux (levels).

Pour créer une nouvelle variable qualitative service.c á partir de la variable quantitative service :

satis$service.c <- factor(satis$service)


Pour comparer les deux variables, utilisons la fonction summary :

summary(satis$service)


Min. 1st Qu. Median Mean 3rd Qu. Max.
1.000 3.000 5.000 4.549 7.000 8.000

summary(satis$service.c)


1 2 3 4 5 6 7 8
65 59 70 69 71 64 67 69

On peut par la suite changer les labels des niveaux avec la fonction levels :

levels(satis$service.c)<-c("S1","S2","S3","S4","S5","S6","S7","S8") 
summary(satis$service.c)


S1 S2 S3 S4 S5 S6 S7 S8
65 59 70 69 71 64 67 69

On peut aussi le faire directement.

Pour coder les professions :

satis$profession.c <- factor(satis$profession,labels=c("agriculteur","artisan","cadre","intermédiaire","employé","ouvrier","sans emploi","autre")) summary(satis$profession.c)


agriculteur artisan cadre intermédiaire employé ouvrier
1 38 124 88 69 44
sans emploi autre NA's
22 41 107

Pour coder les sexes :

satis$sexe.c <- factor(satis$sexe,labels=c("homme","femme")) 
summary(satis$sexe.c)


homme femme
268 266

Les changements de valeurs

L’instruction ifelse permet d’attribuer deux valeurs, en fonction du résultat du test.

Pour transformer la variable recommander en variable binaire recommander.b, la valeur vaudra 1 est recommander vaut 2 et 0 sinon :

satis$recommander.b<-ifelse(satis$recommander==2,1,0) 
table(satis$recommander,satis$recommander.b)


0 1
0 16 0
1 120 0
2 0 269

Destruction d’une variable

Pour détruire la variable sexe.c :

satis$sexe.c<-NULL 
satis$sexe.c


NULL