##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