##chargement des packages----
library(questionr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.1     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.3     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tableone)
library(labelled)
library(gtsummary)
library(GGally)
library(readxl)
library(effects)
## Le chargement a nécessité le package : carData
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
library(survival)
library(survminer)
## Le chargement a nécessité le package : ggpubr
## Registered S3 method overwritten by 'car':
##   method           from
##   na.action.merMod lme4
## 
## Attachement du package : 'survminer'
## 
## L'objet suivant est masqué depuis 'package:survival':
## 
##     myeloma
library(ggplot2)
library(dplyr)
library(knitr)
library(cowplot)
## 
## Attachement du package : 'cowplot'
## 
## L'objet suivant est masqué depuis 'package:ggpubr':
## 
##     get_legend
## 
## L'objet suivant est masqué depuis 'package:lubridate':
## 
##     stamp
##chargement des données 

data_dplct <- read_excel("C:/datar/data_dplct.xlsx")
data_appels_sans_dplct <- read_excel("C:/datar/data_appels_sans_dplct.xlsx")

dplct<-filter(data_dplct, c(eligible_dplct=="oui"))
appels<-filter(data_appels_sans_dplct, c(eligible_appel_sans_dplct=="oui"))

##recodage des variables et bases de données le cas échéant----
appels$appel_astreinte <-ifelse(appels$nb_appel_sans_dplct==1, "oui", "non")

##renommer des variables pour présentation dans les tableaux de résultats
library(labelled)
var_label(dplct$duree_deplct) <- "duree de presence hors déplacement (hr)"

##Données exploitables pour les déplacements de nov 2025 à debut oct 2026----
##exclusion des journées samedi et fériés (présence fixée)##

tbl_summary(
  dplct, include = c("jour"),
  by="periode", 
  digits=all_categorical()~ c(0,1)
)
Characteristic journee
N = 36
1
soiree_nuit
N = 276
1
jour

    dimanche 36 (100.0%) 37 (13.4%)
    ferie 0 (0.0%) 11 (4.0%)
    samedi 0 (0.0%) 40 (14.5%)
    semaine 0 (0.0%) 149 (54.0%)
    vendredi 0 (0.0%) 39 (14.1%)
1 n (%)
##extraction des données selon les jours 


semaine<-filter(dplct, c(jour=="semaine"))

lun_ven<-filter(dplct, c(jour=="semaine"| jour=="vendredi"))
vendredi<-filter(dplct, c(jour=="vendredi"))
samedi<-filter(dplct, c(jour=="samedi"))
dimanche<-filter(dplct, c(jour=="dimanche"))

##déplacements en semaine 
tbl_summary(
  semaine, include = c("deplacement"),
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 1491
deplacement
    non 138 (92.6%)
    oui 11 (7.4%)
1 n (%)
##deplacements le vendredi soir
tbl_summary(
  vendredi, include = c("deplacement"),
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 391
deplacement
    non 36 (92.3%)
    oui 3 (7.7%)
1 n (%)
##regroupement déplacements semaine + vendredi
tbl_summary(
  lun_ven, include = c("deplacement"),
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 1881
deplacement
    non 174 (92.6%)
    oui 14 (7.4%)
1 n (%)
dplct_sem<-filter(lun_ven, c(deplacement=="oui"))

tbl_summary(
  dplct_sem, include = c("duree_deplct"),
  digits=all_categorical()~ c(0,1), 
  type = list(
    duree_deplct ~ "continuous"
  ),
  statistic = all_continuous() ~ "{median} ({p25}-{p75}) [{min} - {max}]",
)
Characteristic N = 141
duree de presence hors déplacement (hr) 1.00 (0.75-1.00) [0.50 - 2.00]
1 Median (Q1-Q3) [Min - Max]
##deplacements du samedi après 18h00
tbl_summary(
  samedi, include = c("deplacement"),
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 401
deplacement
    non 31 (77.5%)
    oui 9 (22.5%)
1 n (%)
dplct_samedi<-filter(samedi, c(deplacement=="oui"))

tbl_summary(
  dplct_samedi, include = c("duree_deplct"),
  digits=all_categorical()~ c(0,1), 
  type = list(
    duree_deplct ~ "continuous"
  ),
  statistic = all_continuous() ~ "{median} ({p25}-{p75}) [{min} - {max}]",
)
Characteristic N = 91
duree de presence hors déplacement (hr) 1.00 (0.50-1.00) [0.50 - 1.50]
1 Median (Q1-Q3) [Min - Max]
##déplacement du dimanche 
dimanche %>%
  tbl_cross(
    row = motif_deplct,
    col = deplacement,
    percent = "row"
  ) %>%
  add_p(source_note = TRUE)
deplacement
Total
non oui
motif_deplct


    appel 0 (0%) 15 (100%) 15 (100%)
    ctp_prevu 0 (0%) 31 (100%) 31 (100%)
    Unknown 27 (100%) 0 (0%) 27 (100%)
Total 27 (37%) 46 (63%) 73 (100%)
Pearson’s Chi-squared test, p<0.001
dplct_dimanche<-filter(dimanche, c(deplacement=="oui"))

tbl_summary(
  dplct_dimanche, include = c("duree_deplct"),
  digits=all_categorical()~ c(0,1), 
  statistic = all_continuous() ~ "{median} ({p25}- {p75}) [{min} - {max}]",
  by="motif_deplct",
)
Characteristic appel
N = 15
1
ctp_prevu
N = 31
1
duree de presence hors déplacement (hr) 1.00 (0.50- 1.00) [0.25 - 5.50] 3.50 (3.00- 4.50) [1.50 - 8.50]
1 Median (Q1- Q3) [Min - Max]
##Données exploitables pour les appels sans déplacement
##de nov 2025 à debut oct 2026----


tbl_summary(
  appels, include = c("jour"),
  by="periode", 
  digits=all_categorical()~ c(0,1)
)
Characteristic journee
N = 80
1
soiree_nuit
N = 237
1
jour

    dimanche 36 (45.0%) 34 (14.3%)
    ferie 11 (13.8%) 10 (4.2%)
    samedi 33 (41.3%) 35 (14.8%)
    semaine 0 (0.0%) 124 (52.3%)
    vendredi 0 (0.0%) 34 (14.3%)
1 n (%)
lun_ven_appels<-filter(appels, c(jour=="semaine"| jour=="vendredi"))
vendredi_apels<-filter(appels, c(jour=="vendredi"))
samedi_appels<-filter(appels, c(jour=="samedi"))
dimanche_appels<-filter(appels, c(jour=="dimanche"))

##Nb d'appels en semaine

tbl_summary(
  lun_ven_appels, include = c("appel_astreinte"),
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 1581
appel_astreinte
    non 98 (62.0%)
    oui 60 (38.0%)
1 n (%)
##Nb d'appel le samedi après 18h00
tbl_summary(
  samedi_appels, include = c("appel_astreinte"),
  digits=all_categorical()~ c(0,1)
)
Characteristic N = 681
appel_astreinte
    non 47 (69.1%)
    oui 21 (30.9%)
1 n (%)
##Nb d'appels le dimanche 
dimanche_appels %>%
  tbl_cross(
    row = periode,
    col = appel_astreinte,
    percent = "row"
  ) %>%
  add_p(source_note = TRUE)
appel_astreinte
Total
non oui
periode


    journee 26 (72%) 10 (28%) 36 (100%)
    soiree_nuit 20 (59%) 14 (41%) 34 (100%)
Total 46 (66%) 24 (34%) 70 (100%)
Pearson’s Chi-squared test, p=0.2