##SATISFACTION A L'HOPITAL
#J'importe le fichier csv
library(readr)
fichier <- read_csv2("~/Mes Documents/2026/COURS/COURS_R/SEMAINE_1/Devoirs_etudiants/satisfaction_hopital.csv")
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
## Rows: 534 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## dbl (9): service, sexe, age, profession, amelioration.sante, amelioration.mo...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(fichier)
names(fichier)
## [1] "service" "sexe" "age"
## [4] "profession" "amelioration.sante" "amelioration.moral"
## [7] "recommander" "score.relation" "score,information"
#J'affiche le contenu des résultats
str(fichier)
## spc_tbl_ [534 × 9] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ service : num [1:534] 3 3 3 3 3 3 3 3 3 3 ...
## $ sexe : num [1:534] 0 1 1 0 1 0 0 0 0 1 ...
## $ age : num [1:534] 41 29 83 66 84 84 60 85 28 35 ...
## $ profession : num [1:534] 4 8 2 3 NA 6 3 3 3 3 ...
## $ amelioration.sante: num [1:534] 1 2 2 2 NA 3 2 3 3 3 ...
## $ amelioration.moral: num [1:534] 0 3 1 0 NA 3 1 1 1 2 ...
## $ recommander : num [1:534] 1 2 2 2 NA 2 1 2 1 NA ...
## $ score.relation : num [1:534] 36 33 40 32 NA 39 31 NA 36 NA ...
## $ score,information : num [1:534] 22 36 37 35 NA 28 30 NA 29 NA ...
## - attr(*, "spec")=
## .. cols(
## .. service = col_double(),
## .. sexe = col_double(),
## .. age = col_double(),
## .. profession = col_double(),
## .. amelioration.sante = col_double(),
## .. amelioration.moral = col_double(),
## .. recommander = col_double(),
## .. score.relation = col_double(),
## .. `score,information` = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
summary(fichier)
## service sexe age profession
## Min. :1.000 Min. :0.0000 Min. :18.00 Min. :1.000
## 1st Qu.:3.000 1st Qu.:0.0000 1st Qu.:45.00 1st Qu.:3.000
## Median :5.000 Median :0.0000 Median :60.00 Median :4.000
## Mean :4.549 Mean :0.4981 Mean :58.21 Mean :4.431
## 3rd Qu.:7.000 3rd Qu.:1.0000 3rd Qu.:72.00 3rd Qu.:5.500
## Max. :8.000 Max. :1.0000 Max. :97.00 Max. :8.000
## NA's :6 NA's :107
## amelioration.sante amelioration.moral recommander score.relation
## Min. :0.000 Min. :0.000 Min. :0.000 Min. :13.00
## 1st Qu.:2.000 1st Qu.:1.000 1st Qu.:1.000 1st Qu.:33.00
## Median :2.000 Median :1.000 Median :2.000 Median :36.00
## Mean :2.231 Mean :1.679 Mean :1.625 Mean :35.22
## 3rd Qu.:3.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:39.00
## Max. :3.000 Max. :3.000 Max. :2.000 Max. :40.00
## NA's :158 NA's :151 NA's :129 NA's :185
## score,information
## Min. :13.00
## 1st Qu.:28.00
## Median :33.00
## Mean :31.91
## 3rd Qu.:38.00
## Max. :40.00
## NA's :176
#1-PRESENTER LES POURCENTAGES DE TROIS VARIABLES CATEGORIELLES
##Je choisi les 3 variables catégorielles: "service", "sexe" et "profession"
###Pour le service
table(fichier$service)
##
## 1 2 3 4 5 6 7 8
## 65 59 70 69 71 64 67 69
prop.table(table(fichier$service))
##
## 1 2 3 4 5 6 7 8
## 0.1217228 0.1104869 0.1310861 0.1292135 0.1329588 0.1198502 0.1254682 0.1292135
round(prop.table(table(fichier$service))*100,1)
##
## 1 2 3 4 5 6 7 8
## 12.2 11.0 13.1 12.9 13.3 12.0 12.5 12.9
###pour le sexe
table(fichier$sexe)
##
## 0 1
## 268 266
prop.table(table(fichier$sexe))
##
## 0 1
## 0.5018727 0.4981273
round(prop.table(table(fichier$sexe))*100,1)
##
## 0 1
## 50.2 49.8
###pour la profession
table(fichier$profession)
##
## 1 2 3 4 5 6 7 8
## 1 38 124 88 69 44 22 41
prop.table(table(fichier$profession))
##
## 1 2 3 4 5 6 7
## 0.00234192 0.08899297 0.29039813 0.20608899 0.16159251 0.10304450 0.05152225
## 8
## 0.09601874
round(prop.table(table(fichier$profession))*100,1)
##
## 1 2 3 4 5 6 7 8
## 0.2 8.9 29.0 20.6 16.2 10.3 5.2 9.6
#2 PRESENTER DE FACON SYNTHETIQUE(moyenne, mediane,ecart-type, minimum, maximum pour les autres variables)
### Pour la variable age
summary(fichier$age) #moyenne, ninimum, maximum, mediane, ecart-type et données manquantes (NA)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 18.00 45.00 60.00 58.21 72.00 97.00 6
sd(fichier$age,na.rm = TRUE) # calcule l'ecart-type en ignorant les données manquantes (NA)
## [1] 17.80925
length(na.omit(fichier$age)) #donne le nombre de données disponible
## [1] 528
#3 FAIRE UN HISTOGRAMME DU SCORE DE RELATION
fichier$score.relation
## [1] 36 33 40 32 NA 39 31 NA 36 NA NA NA 38 37 40 NA NA 34 39 40 40 NA 40 28 39
## [26] 39 22 35 38 38 37 33 33 NA 40 39 40 37 34 NA NA NA 24 NA 38 36 31 32 NA NA
## [51] 37 NA NA 39 33 40 38 37 35 40 30 40 37 35 40 38 40 38 NA 36 NA 33 NA 35 39
## [76] NA 38 40 NA 34 40 NA NA 30 NA 37 40 36 39 40 40 40 38 NA 36 40 39 26 NA 32
## [101] NA 30 35 35 27 30 31 NA 40 39 28 40 33 NA 38 40 25 31 34 NA 23 40 37 40 34
## [126] 25 33 33 33 NA 40 39 40 40 34 29 38 34 40 NA 38 NA 34 33 21 38 NA NA 38 NA
## [151] 36 NA 38 33 NA NA 40 NA NA 38 30 33 33 NA 36 39 37 39 40 39 28 39 39 27 30
## [176] 39 39 NA 30 NA NA 35 NA 37 NA NA 38 NA NA NA 30 NA NA NA 37 NA NA 28 40 36
## [201] 31 NA 31 30 39 40 40 NA 32 NA NA 39 25 NA 38 38 NA 33 NA NA 28 38 33 36 40
## [226] 38 28 38 NA NA 37 32 28 39 39 37 NA NA 38 36 34 40 29 NA NA NA 35 NA 40 31
## [251] 34 40 37 NA NA 35 36 33 35 38 38 NA NA NA NA 35 NA 30 35 33 39 39 NA NA 29
## [276] 39 NA 38 40 35 36 32 NA 35 25 37 NA 37 34 32 39 21 28 36 40 34 NA 40 32 34
## [301] 38 NA NA NA 29 NA 13 38 39 35 34 NA 38 35 35 40 32 34 36 NA NA 40 40 NA 38
## [326] NA 31 NA 38 35 32 NA 35 NA NA NA 40 33 34 NA NA NA NA 38 28 NA NA 39 NA 38
## [351] 33 37 35 NA NA NA 40 NA NA NA NA 39 36 NA 32 36 38 33 NA 39 NA 34 36 40 NA
## [376] NA NA NA 21 NA 30 30 24 NA NA NA 38 38 38 NA 37 39 40 NA NA NA NA NA NA NA
## [401] 25 26 31 NA 32 NA 34 25 31 NA NA NA NA 26 NA 40 30 NA 38 NA NA NA NA NA 38
## [426] NA NA NA NA 27 37 33 36 NA NA 37 36 32 37 29 21 40 40 NA 39 37 35 33 NA 40
## [451] 28 39 36 NA NA NA NA 39 NA 38 NA NA NA 38 37 36 NA 40 39 35 NA 40 NA NA 35
## [476] 39 38 NA 40 40 28 33 40 33 34 NA NA NA 40 NA NA 26 NA NA 40 33 29 39 40 NA
## [501] NA 37 26 25 40 NA 29 32 36 NA NA 33 38 40 NA 38 39 39 40 36 33 40 39 NA 37
## [526] 33 40 38 NA NA NA 32 30 NA
hist(fichier$score.relation) #representation sous forme d'histogramme

#4 REPRESENTER COTE A COTE LA DISTRIBUTION DU SCORE DE RELATION CHEZ LES HOMMES ET LES FEMMES
boxplot(fichier$score.relation,xlab="score.relation") #représentation de la variable en boîte à moustaches

boxplot(fichier$score.relation~fichier$sexe,ylab = "score.relation",xlab = "sexe") # représentation de la distribution du score relation cote à cote en fonction du sexe
