Le code R
library(data.table)
library(stringr)
library(knitr)
library(kableExtra)
library(here)
library(janitor)
library(ggplot2)
library(scales)
library(gtsummary)
library(finalfit)library(data.table)
library(stringr)
library(knitr)
library(kableExtra)
library(here)
library(janitor)
library(ggplot2)
library(scales)
library(gtsummary)
library(finalfit)extraction = fread(here("data-raw","results-survey564424.csv"), encoding = "UTF-8")
table_enqueteurs = fread(here("data-raw","table_enqueteurs.csv"), encoding = "UTF-8")On retire les variables inutiles et on renomme les variables correctement.
extraction[, c("startlanguage", "seed") := NULL]
names(extraction) <- make_clean_names(names(extraction))
#liste des variables sur trois colonnes en kable
nvar = length(names(extraction))
var_names = names(extraction)
c(var_names, rep("", 75 - nvar)) |> matrix(ncol = 5) |>
kbl() |> kable_styling(font_size = 20) | id | niveauetude | signes_8 | moyencampagne_2 | freinsleviers_infovac |
| submitdate | niveauetude_other | signes_9 | moyencampagne_3 | freinsleviers_infomening |
| lastpage | lieuvie | signes_10 | moyencampagne_4 | freinsleviers_acces |
| idenq | logement | gravite | moyencampagne_5 | freinsleviers_confvac |
| consentement | logement_other | transmission_1 | moyencampagne_6 | freinsleviers_peurvac |
| etudiant2026 | sitfinanciere | transmission_2 | moyencampagne_7 | freinsleviers_peurmenig |
| age | suivimedical | transmission_3 | moyencampagne_8 | freinsleviers_confautorite |
| genre | evtcollectif | protection_1 | moyencampagne_other | freinsleviers_concerne |
| genre_other | signes_1 | protection_2 | statutvac | freinsleviers_entourageencou |
| statut2025_1 | signes_2 | protection_3 | vaccampagne | freinsleviers_entouragedecons |
| statut2025_2 | signes_3 | protection_4 | nbdose | remarques |
| statut2025_3 | signes_4 | protection_5 | lieudose1 | |
| statut2025_other | signes_5 | protection_6 | lieudose2 | |
| filiere | signes_6 | connaisscampagne | raisonschincomplet | |
| filiere_other | signes_7 | moyencampagne_1 | raisonschincomplet_other |
On sépare ensuite les participants des refus.
dt_refus <- extraction[consentement == "Non"]
dt_participant <- extraction[consentement == "Oui" & !is.na(submitdate)]Il y a 1011 participants et 18 refus.
Il y a 3 participants de moins de 18 ans, qui ne remplissent pas les critères d’inclusion.
Il y a 13 participants de plus de 26 ans, qui ne remplissent pas les critères d’inclusion.
Au total, il y a 995 participants qui remplissent les critères d’inclusion.
dt_participant <- dt_participant[age >= 18 & age <= 26]
## decision du groupe : on ne garde que les étudiants 2026
dt_participant <- dt_participant[etudiant2026 == "Oui"]Il y a 133 participants qui ont laissé des remarques en texte libre…
dt_participant[!is.na(remarques) & remarques!="" & remarques!="Non", remarques] [1] "Contre-indication"
[2] "Intéressé par l'enquête "
[3] "1ère dose faisait particulièrement mal au bras par rapport à la 2ème dose"
[4] "Elle avait déjà été vaccinée au lycée et a été revaccinée ensuite intérêt donc de cocher avant et pendant ?"
[5] "Je n'ai pas pu aller me.faire vacciner parce que la file d'attente etait longue quand je me.suis rendue à la pharmacie pour le faire"
[6] "Très bien quel y ait une campagne "
[7] "Merci"
[8] "S'est dit que les cas étaient super loin de lui, ne s'est pas senti concerné. Donc n'était pas trop stimulé à se faire vacciner. Pour lui, il se fait général vacciner quand aux infos on lui dit que la maladie a entraîné beaucoup de morts"
[9] "Personne hors cible selon lui car a eu 24 ans en decembre 2024"
[10] "On a pas trop d’informations concernant la maladie "
[11] "Très intéressée à connaître les résultats de l'étude "
[12] "A oublié / flemme de se faire vacciner"
[13] "Assez complet\n"
[14] "Pas de commentaire particulier"
[15] "N'habitait pas à Rennes Métropole à l'époque de la campagne "
[16] "Bien informé ris qu'es "
[17] "N’était pas en France "
[18] "J'ai eu la flemme de prendre la deuxième dose, à dire vrai. Meme si j'avais déjà quitté Rennes.\n\nJ'aimerai aussi que pour les prochaines campagnes, insister sur les messages quand à la gravité liée à la IIM auprès des jeunes"
[19] "Rajouter une option bof lors des dernières questions "
[20] "Plus informer les jeunes sur la maladie. Faire plus de rappel aux jeunes sur la deuxième dose. Genre appeler les jeunes pour un rappel, plutôt que des notifications. "
[21] "N'habitait pas à Rennes lors de la campagne"
[22] "Peut etre l'informer par mail, ça aurait aidé. Passer dans les amphi pour parler de la campagne de vaccination. Ou demander à l'enseignant d'en parler pendant les cours."
[23] "Elle a été vaccinée par ses parents avant la campagne et n'a pas eu le volet d'informations / prévention "
[24] "Non\nInteressant"
[25] "Mes copains minimisant la deuxième dose, je ne l'ai pas faite. \nJe pense aussi que toute la communication faite lors de la première dose a baissé par la suite: pas de rappel sur la deuxième dose, pas de grands bruits, quoi. Ce qui fait que je n'ai pas été intéressé d'avoir ma deuxième dose."
[26] "Manque de nuance à la fin"
[27] "Proche handicapé suite a une iim"
[28] "Merci pour le questionnaire "
[29] "Plus de prévention à faire au niveau des universités, les questions posées m'ont fait comprendre que je connais peu de chose de cette maladie meme si on en parle beaucoup sur les réseaux et que c'est mortelle "
[30] "Il n’y a pas eu suffisamment de sensibilisation sur le sujet"
[31] "J'ai beaucoup été encouragé par mon entourage à me faire vacciner. "
[32] "Non éligible a ce moment la"
[33] "Plus de réunion d'information au niveau des universités, rendre les services plus accessibles et les médecins aussi plus accessible dans les universités "
[34] "Ne sait plus "
[35] "Pas suffisamment de rappel pour avoir la deuxième dose. Je pense aussi que le gouvernement devrait faire plus pour informer les jeunes sur les maladies circulant (surtout depuis les poutrages de la période covid-19).\n"
[36] "Nous informer régulièrement sur ce genre de maladie, j'ai vu sur tiktok que la maladie est revenue, donc nous devrions être mieux informé sur comment on attrape ça "
[37] "Vaccin fait avant et se demande pourquoi on ne parlait que du B pendant la campagne "
[38] "Lui apprécie les réponses binaires oui non pour la fin du questionnaire "
[39] "Flemme de prendre un rdv"
[40] "Pas informée suffisamment pour se sentir concernée. "
[41] "Fait car très conseille manque l'info vaccinal"
[42] "Avait peur des effets indésirables, mais plus maintenant car n’a pas eu d’effets secondaires "
[43] "Pas particulièrement. "
[44] "Informer plus les jeunes, sur les risques comme les maladies comme ça , comme on peut être exposé, pourquoi pas avoir un petit bureau ici où on peut demander des renseignements "
[45] "Nous partager régulièrement des informations sur les réseaux sociaux"
[46] "Avoir un espace en ligne où on peut demander des informations "
[47] " A bien aimé "
[48] "Je pense que la communication n'a pas été suffisante sur le sujet. Ou peut être que c'est moi qui n'ait pas suffisamment cherché l'information. A voir"
[49] "Rendre le lien de le l'enquête accessible sur campus"
[50] "A découvert campagne à la rentrée septembre 2025 en entrant sur le campus"
[51] "J'ai perdu le papier du médecin pour demander le flacon de vaccination.\n"
[52] "Pas beaucoup d’informations communiquées lors de la campagne par rapport aux raisons, les dangers de la maladie"
[53] "Impeccable merci "
[54] "Acces aux médecins, rien que deux médecins au SSE, ce n'est pas facile quand nous sommes malades ni qu'on souhaite se renseigner "
[55] "Entourage anti vax = décourageant "
[56] "Pas beaucoup d’informations sur la pathologie"
[57] "Atcd famille sep et problème de circulation pas l'info pars les "
[58] "Rien à signaler. Je pense que la maladie prend le dessus sur les raisons ou non de me faire vacciner. "
[59] "Campagne d’information bien réalisée mais le vaccin a eu de gros effets secondaires surtout la 2eme dose "
[60] "Stand de sensibilisation/présence physique et passage dans amphy: cela aurait mieux aidé dans la sensibilisation que les mails et autres. "
[61] "Pas au courant a paris"
[62] "Elle était étudiante à l’ehesp mais je l’ai questionnée quand même "
[63] "J'ai un peu galèré pour avoir accès au vaccin, devant aller de pharmacie en pharmacie "
[64] "Je pense ne pas avoir été suffisamment informé et concerné pour me faire vacciner. Ma mère m'a bien encouragé à me faire vacciner mais bof. "
[65] "Méningite c'est quoi?\nMéningocoque aucune idée moi."
[66] "Demander qq infos sur les effets de la menengite"
[67] "Méningite? Jamais entendu parler. Meningo-quoi?"
[68] "Les copains qui m'ont conseillé de ne pas me faire vacciner n'aiment pas les vaccins de façon générale. "
[69] "Rendre le service de santé plus accessible, prévoir plus de séances de prévention où on peut discuter et poser des questions "
[70] "On est en prépa concours donc on est isolés."
[71] "9"
[72] "Le"
[73] "Acces aux services, les horaires du SSE sont souvent plus difficiles "
[74] "Sa mère infirmière la vacciner à la maison "
[75] "C'est quoi du coup la méningite ?"
[76] "Faire une communication plus en presentiel que par des canaux type réseaux sociaux et flyers pour mieux sensibiliser les jeunes. "
[77] "SSE démarche longue,assez difficile à combiner avec les cours"
[78] "Les impacts du vaccin ou si ne te fais pas vacciner"
[79] "Mon entourage m’a beaucoup poussé à le faire (employeur, famille)"
[80] "Insister sur le fait que les jeunes se sentent concernés "
[81] "Affirme une seule dose en 25 après une dose dans l'enfance pour une situation particulière "
[82] "Communication mal faite sur la chose. En plus, mon entourage est assez méfiant envers les vaccins "
[83] "La personne a eu le vaccin auparavant et son médecin traitant lui a conseillé de ne pas prendre le vaccin.\n"
[84] "Mal au bras après le vaccin. Nausée. Mal de ventre jusqu’à maintenant !!!!!"
[85] "Plus d'affiches. Mettre des messages de sensibilisation sur le site de l'université. Travailler avec les Asso des étudiants de Rennes."
[86] "Étudiante ayant 25 ans lors de la campagne et inéligible. Elle est très embêtée car voulait se faire vacciner comme ses amis qui ont pu le faire "
[87] "Elle n’habitait finalement pas à Rennes !!"
[88] "RAS"
[89] "Contrainte du temps de ne pas avoir reçu le vaccin"
[90] "1ere dose prévue"
[91] "Très bien informée"
[92] "Elle avait fait un autre vaccin récemment donc son médecin lui a conseillé de ne pas le faire. Sinon elle allait le faire."
[93] "Je dois me renseigner. "
[94] "J'aurai bien aimé qu'il y ait des stands de sensibilisation sur la campagne du printemps de l'année passée. Parce que franchement, je ne pense pas avoir eu accès à l'infos"
[95] "Accès aux médecins souvent difficiles "
[96] "Merci"
[97] "Plutôt satisfait des services de santé de l'université, les séances d'information sont nécessaires, le faire régulièrement "
[98] "Temps d’attente important pour avoir un rdv "
[99] "Aller plus vers les gens comme quand vous êtes en train de nous approcher pour votre enquete: cela aurait aidé à améliorer la communication. "
[100] "Rien "
[101] "Veut plus dinfo"
[102] "J'ai pas confiance dans les autorités parce que des fois ils recommandent des choses pour revenir dessus après. Ils recommandent une vaccination et après reviennent dire que c'était pas efficace."
[103] " Non"
[104] "Dc dans la famille campagne importartc"
[105] "Phobie de la méningite \nParents médecins qui vaccinent la maison "
[106] "En.parler plus sur les réseaux sociaux et par les enseignants ainsi que faire des campagnes publicitaires : voici ce qu'il aurait fallu faire pour ameliorer la communication. Et prendre l'avis des jeunes sur les canaux de communication à utiliser pour passer les messages sur d'éventuelles campagnes. "
[107] "9"
[108] "Elle n’a pas reçu le vaccin parce qu’elle habitait dans une ville loin de Rennes métropolitaine et elle voit qu’elle est loin du risque"
[109] "Sa sœur a des allergies sévères qui contre-indiquent la vaccination. Elle estime qu'elle n'a pas été suffisamment informée sur ce sujet pendant la capagne"
[110] "Mieux sensibiliser sur la santé de la reproduction, surtout le manque de fer chez les jeunes femmes ,"
[111] "Elle habite seule et elle ne sortait pas trop de chez elle du coup elle n’a pas trouvé qu’elle concernée par la campagne"
[112] "Je tombe rarement malade, je n'ai pas de médecin, je n'ai donc pas accès à beaucoup d'infos de santé hormis mes copains et la fac. "
[113] "Sensibilisation régulière surtout sur les questions autour de l'endométriose et des autres maladies des femmes"
[114] "Étudiante nouvelle à Rennes se fait actuellement vacciner par peur des cas de méningite à Rennes "
[115] "Rien à signaler"
[116] "RAS"
[117] "Bonne année et bonne santé "
[118] "T’as pas à la comapagne parce qu’il était pas informé et il n’habite loin de Rennes metropole"
[119] "Ordo a la maison"
[120] "Mère antivax "
[121] "Même si elle pense que la maladie et grave et potentiellement mortelle elle considère \"\"qu'il faut pas se faire vacciner pour tout\"\""
[122] "Avait reçu le rappel vaccinal de DTP + Coqueluche dans la même période donc a décidé de ne pas se faire vacciner"
[123] "Communication moins professionnelle , je trouve. Faudrait améliorer les choses pour la suite"
[124] "Elle avait un rdv pour se faire vacciner mais elle était hospitalisée au moment du rdv. Pas de vaccination à l’hôpital."
[125] "Sa mère est médecin elle a prescrit les vaccins"
[126] "Déjà fait 3 ans auparavant"
[127] "Ca a été pas trop mal comme communication, je trouve. "
[128] "Déjà fait étant petit"
[129] "Les effets indésirables n'ont pas été détaillés pendant la campagne. \nA présenté des effets pendant 2 jours."
[130] "Elle n’habitait pas à la région en 2025"
[131] "Habitait à 45 min de Rennes, pas de vaccination "
[132] "Deux doses"
[133] "Sensibiliser d’avantage sur les risques contre la meningite"
#age en 3 catégories
# dt_participant[age < 21, age_fct3 := "18-20"]
# dt_participant[age >= 21 & age <= 23, age_fct3 := "21-23"]
# dt_participant[age > 23, age_fct3 := "24-26"]
# dt_participant[, age_fct3 := factor(age_fct3, levels = c("18-20", "21-23", "24-26"))]
dt_participant[age < 20, age_fct3 := "18-19"]
dt_participant[age >= 20 & age <= 21, age_fct3 := "20-21"]
dt_participant[age > 21, age_fct3 := "22-26"]
dt_participant[, age_fct3 := factor(age_fct3, levels = c("18-19", "20-21", "22-26"))]
#genre en 4 catégories
dt_participant[, genre_fct4 := factor(genre,
levels = c("Féminin",
"Masculin",
"Non binaire",
"Autre",
"Préfère ne pas dire"),
labels = c("F",
"M",
"NB",
"Autre",
"Autre"))]
#genre en 3 catégories
dt_participant[, genre_fct3 := factor(genre,
levels = c("Féminin",
"Masculin",
"Non binaire",
"Autre",
"Préfère ne pas dire"),
labels = c("F",
"M",
"NB/Autre",
"NB/Autre",
"NB/Autre"))]
dt_participant[, etudiant2026 := as.factor(etudiant2026)]
#genre_other déjà codé en Autre et non renseigné
dt_participant[, genre_other := NULL]
#"statut2025_1", "statut2025_2", "statut2025_3", "statut2025_other"
#seulement 2 participants répondent étudiants et lycéens, on les considère lycéens
#Autre contient: salariés, césure/sabbatique
dt_participant[, statut2025 := fifelse(statut2025_1 == "Oui", "Lycéen",
fifelse(statut2025_2 == "Oui", "Etudiant",
fifelse(statut2025_3 == "Oui", "Personnel","Autre")))]
#recodage de certains statut2025_other: "Formation", "Etudiant à Anger"
dt_participant[statut2025_other == "Formation", statut2025 := "Etudiant"]
dt_participant[statut2025_other == "Etudiant à Anger", statut2025 := "Etudiant"]
dt_participant[, statut2025 := as.factor(statut2025)]
#filiere : sans réponse pour ceux qui n'étaient pas étudiants en 2025 TODO: Warning on a perdu des lycéens !
dt_participant[filiere == "", filiere := "Autre"]
dt_participant[filiere == "Autre" & statut2025 == "Lycéen", filiere := "Pre-BAC"]
dt_participant[, filiere := as.factor(filiere)]
#filière en 5 categories
dt_participant[, filiere_fct5:= factor(filiere,
levels = c("Langues, Arts, lettres et communication",
"Santé (Dentaire, Médecine, Pharmacie, PAS/LAS)",
"Sciences humaines et sociales",
"Pre-BAC",
"STAPS",
"Autre"),
labels = c("Langues, Arts, lettres et communication",
"Santé (Dentaire, Médecine, Pharmacie, PAS/LAS)",
"Sciences humaines et sociales",
"Pre-BAC",
"Autre",
"Autre"))]
#niveau étude en 4 catégories
#niveauetude
dt_participant[niveauetude == "", niveauetude := NA]
dt_participant[niveauetude_other == "DEST", niveauetude := "Licence/BTS"]
dt_participant[niveauetude_other == "Deug", niveauetude := "Licence/BTS"]
dt_participant[niveauetude_other == "Duug", niveauetude := "Licence/BTS"]
#trop peu de "Autre" -> NA
dt_participant[niveauetude == "Autre", niveauetude := NA]
dt_participant[, niveauetude := as.factor(niveauetude)]
#sera dropé dans les analyses
#Rennes Metropole
dt_participant[lieuvie == "", lieuvie := NA]
dt_participant[, rennes_metropole := as.factor(lieuvie)]
setattr(dt_participant$rennes_metropole, "label", c("A vécu à Rennes Métropole en 2025"))
#logement / logement_other (other rien à recoder)
dt_participant[, logement := as.factor(logement)]
dt_participant$logement = relevel(dt_participant$logement, ref = "Logement individuel hors résidence")
#sitfinanciere
dt_participant[sitfinanciere == "", sitfinanciere := NA]
dt_participant[sitfinanciere == "Ne veut pas répondre", sitfinanciere := NA]
dt_participant[, sitfinanciere := as.factor(sitfinanciere)]
dt_participant[, sitfinanciere_fct2 := factor(sitfinanciere, levels = c("C’était difficile",
"C’était juste, il fallait faire attention",
"ça allait", "Vous étiez à l'aise"),
labels = c("Difficile/Juste", "Difficile/Juste", "Facile/À l'aise", "Facile/À l'aise"))]
#suivimedical
dt_participant[suivimedical == "", suivimedical := NA]
dt_participant[suivimedical == "Ne veut pas répondre", suivimedical := NA]
dt_participant[, suivimedical := as.factor(suivimedical)]
setattr(dt_participant$suivimedical, "label", c("Suivi pour maladie chronique"))
#evtcollectif
dt_participant[, evtcollectif := factor(evtcollectif,
levels = c("Jamais", "Occasionnellement", "Assez souvent", "Très souvent"),
labels = c("Jamais", "Occasionnellement", "Souvent", "Souvent"))]
setattr(dt_participant$evtcollectif, "label", c("Participe à des évènements collectifs"))#signes
# score signes: +1 par signe correct, -0.5 pour signe incorrect
dt_participant[, signes_1 := factor(signes_1, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_1, "label", c("Ne connais pas de signes de la méningite"))
dt_participant[, signes_2 := factor(signes_1, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_2, "label", c("Maux de tête (intenses)"))
dt_participant[, signes_3 := factor(signes_3, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_3, "label", c("Apparition de tâches rouges ou violacées sur la peau (purpura)"))
dt_participant[, signes_4 := factor(signes_4, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_4, "label", c("Confusion, somnolence"))
dt_participant[, signes_5 := factor(signes_5, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_5, "label", c("Raideur de la nuque"))
dt_participant[, signes_6 := factor(signes_6, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_6, "label", c("Gène à la lumière vive"))
dt_participant[, signes_7 := factor(signes_7, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_7, "label", c("Fièvre"))
dt_participant[, signes_8 := factor(signes_8, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_8, "label", c("Nausées, vomissements"))
dt_participant[, signes_9 := factor(signes_9, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_9, "label", c("Douleurs musculaires et articulaires"))
dt_participant[, signes_10 := factor(signes_10, levels = c("Oui", "Non"), labels = c("Oui", "Non"))]
setattr(dt_participant$signes_10, "label", c("Propositions incorrectes (au moins une)"))
dt_participant[, score_signes := 0]
dt_participant[signes_2 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_3 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_4 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_5 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_6 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_7 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_8 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_9 == "Oui", score_signes := score_signes + 1]
dt_participant[signes_10 == "Oui", score_signes := score_signes - 0.5]
#signes en 3 modalités
dt_participant[score_signes <= 0, score_signes_fct3 := "Pas de connaissance"]
dt_participant[score_signes > 0 & score_signes < 2, score_signes_fct3 := "Connaissance imparfaite"]
dt_participant[score_signes >= 2, score_signes_fct3 := "Bonne connaissance"]
dt_participant[, score_signes_fct3 := factor(score_signes_fct3, levels = c("Pas de connaissance", "Connaissance imparfaite", "Bonne connaissance"))]
#gravite
dt_participant[gravite == "", gravite := NA]
dt_participant[, gravite := factor(gravite, levels = c("Faible", "Modérée", "Importante"))]
dt_participant[, gravite_fct2 := factor(gravite, levels = c("Faible", "Modérée", "Importante"),
labels = c("Faible/Modérée", "Faible/Modérée", "Importante"))]
#transmission_1 transmission_2 transmission_3
dt_participant[, connaissance_transmission := "Non"]
dt_participant[transmission_1 == "Oui", connaissance_transmission := "Oui"]
dt_participant[, connaissance_transmission := factor(connaissance_transmission, levels = c("Non", "Oui"))]
# protection_1 ... 6
# score protection: +1 par protection correct, -0.5 pour protection incorrect
dt_participant[, score_protection := 0]
dt_participant[protection_1 == "Oui", score_protection := score_protection + 1]
dt_participant[protection_2 == "Oui", score_protection := score_protection + 1]
dt_participant[protection_3 == "Oui", score_protection := score_protection + 1]
dt_participant[protection_4 == "Oui", score_protection := score_protection + 1]
dt_participant[protection_5 == "Oui", score_protection := score_protection - 0.5]
dt_participant[score_protection <= 0, score_protection_fct3 := "Pas de connaissance"]
dt_participant[score_protection > 0 & score_protection < 2 | score_protection == 2.5,
score_protection_fct3 := "Connaissance imparfaite"]
dt_participant[score_protection >= 2 & score_protection != 2.5, score_protection_fct3 := "Bonne connaissance"]
dt_participant[, score_protection_fct3 := factor(score_protection_fct3, levels = c("Pas de connaissance", "Connaissance imparfaite", "Bonne connaissance"))]
# connaisscampagne
dt_participant[connaisscampagne == "", connaisscampagne := NA]
dt_participant[, connaisscampagne := as.factor(connaisscampagne)]
# moyencampagne_1 ...8 moyencampagne_other
dt_participant[moyencampagne_1 == "N/A", moyencampagne_1 := NA]
dt_participant[moyencampagne_2 == "N/A", moyencampagne_2 := NA]
dt_participant[moyencampagne_3 == "N/A", moyencampagne_3 := NA]
dt_participant[moyencampagne_4 == "N/A", moyencampagne_4 := NA]
dt_participant[moyencampagne_5 == "N/A", moyencampagne_5 := NA]
dt_participant[moyencampagne_6 == "N/A", moyencampagne_6 := NA]
dt_participant[moyencampagne_7 == "N/A", moyencampagne_7 := NA]
dt_participant[moyencampagne_8 == "N/A", moyencampagne_8 := NA]
#recodage de Autre: moyen université/enseignant
moyen_univ = c("Fac", "Fac tout", "Lycée", "Univ", "Université", "Universite", "École",
"Etude", "5lycée", "Profs", "Fac crous", "Sses", "Par le lycée", "Prof fac",
"Médecine préventive", "Ecole", "Lycée campagne bretonne",
"Université par les enseignants ", "Dans les cours en amphi pour les étudiants en pharma")
dt_participant[, moyencampagne_univ := "Non"]
dt_participant[moyencampagne_other %in% moyen_univ, moyencampagne_univ := "Oui"]# statutvac
dt_participant[statutvac=="", statutvac := "Ne sait pas"]
dt_participant[, statutvac := as.factor(statutvac)]
dt_participant[, statutvac_fct2 := factor(statutvac, levels = c("Oui", "Non", "Ne sait pas"),
labels = c("Oui", "Non/Ne sait pas", "Non/Ne sait pas"))]
dt_participant$statutvac_fct2 = relevel(dt_participant$statutvac_fct2, ref = "Non/Ne sait pas")
# vaccampagne
dt_participant[vaccampagne=="", vaccampagne := NA]
dt_participant[, vaccampagne := as.factor(vaccampagne)]
# vaccampagne avant vs pendant/après
dt_participant[, vaccampagne_pendantapres := factor(vaccampagne,
levels = c("Avant", "Pendant", "Après"),
labels = c("Avant", "Pendant/Après", "Pendant/Après"))]
# nbdose
dt_participant[nbdose=="" | nbdose == "Ne sait pas", nbdose := NA]
dt_participant[, nbdose := as.factor(nbdose)]
# lieudose1 / lieudose2
dt_participant[lieudose1=="", lieudose1 := NA]
dt_participant[, lieudose1 := as.factor(lieudose1)]
dt_participant[, lieudose1_fct2 := factor(lieudose1, levels = c("Cabinet infirmier, médecin, sage-femme, maison de santé, autre",
"Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu)","Pharmacie"),
labels = c("Autre", "Centre de vaccination", "Autre"))]
dt_participant[lieudose2=="", lieudose2 := NA]
dt_participant[, lieudose2 := as.factor(lieudose2)]
# raisonschincomplet / raisonschincomplet_other
dt_participant[raisonschincomplet=="", raisonschincomplet := NA]
dt_participant[, raisonschincomplet := as.factor(raisonschincomplet)]
dt_participant[raisonschincomplet_other != "" & !is.na(raisonschincomplet_other), raisonschincomplet := "J’ai déménagé, j’ai pas pu, j’avais aqua-poney"]
dt_participant[raisonschincomplet_other %in% c("Oublier", "Oubliée dans le frigo"),
raisonschincomplet := "J’ai oublié qu’il y avait une deuxième dose"]
# freinsleviers_infovac
dt_participant[freinsleviers_infovac == "", freinsleviers_infovac := "NSPP"]
dt_participant[, freinsleviers_infovac := as.factor(freinsleviers_infovac)]
setattr(dt_participant$freinsleviers_infovac, "label", c("Bien informé sur les modalités de vaccination"))
# freinsleviers_infomening
dt_participant[freinsleviers_infomening == "", freinsleviers_infomening := "NSPP"]
dt_participant[, freinsleviers_infomening := as.factor(freinsleviers_infomening)]
setattr(dt_participant$freinsleviers_infomening, "label", c("Bien informé sur les risques liés à la méningite"))
# freinsleviers_acces
dt_participant[freinsleviers_acces == "", freinsleviers_acces := "NSPP"]
dt_participant[, freinsleviers_acces := as.factor(freinsleviers_acces)]
setattr(dt_participant$freinsleviers_acces, "label", c("Facilité d’accès à la vaccination"))
# freinsleviers_confvac
dt_participant[freinsleviers_confvac == "", freinsleviers_confvac := "NSPP"]
dt_participant[, freinsleviers_confvac := as.factor(freinsleviers_confvac)]
setattr(dt_participant$freinsleviers_confvac, "label", c("Confiance dans les vaccins contre la méningite"))
# freinsleviers_peurvac
dt_participant[freinsleviers_peurvac == "", freinsleviers_peurvac := "NSPP"]
dt_participant[, freinsleviers_peurvac := as.factor(freinsleviers_peurvac)]
setattr(dt_participant$freinsleviers_peurvac, "label", c("Peur des des effets indésirables de ce vaccin"))
# freinsleviers_peurmenig
dt_participant[freinsleviers_peurmenig == "", freinsleviers_peurmenig := "NSPP"]
dt_participant[, freinsleviers_peurmenig := as.factor(freinsleviers_peurmenig)]
setattr(dt_participant$freinsleviers_peurmenig, "label", c("Peur de la maladie"))
# freinsleviers_confautorite
dt_participant[freinsleviers_confautorite == "", freinsleviers_confautorite := "NSPP"]
dt_participant[, freinsleviers_confautorite := as.factor(freinsleviers_confautorite)]
setattr(dt_participant$freinsleviers_confautorite, "label", c("Confiance dans les autorités de santé"))
# freinsleviers_concerne
dt_participant[freinsleviers_concerne == "", freinsleviers_concerne := "NSPP"]
dt_participant[, freinsleviers_concerne := as.factor(freinsleviers_concerne)]
setattr(dt_participant$freinsleviers_concerne, "label", c("Se sentir concerné par la campagne de vaccination"))
# freinsleviers_entourageencou
dt_participant[freinsleviers_entourageencou == "", freinsleviers_entourageencou := "NSPP"]
dt_participant[, freinsleviers_entourageencou := as.factor(freinsleviers_entourageencou)]
setattr(dt_participant$freinsleviers_entourageencou, "label", c("Avoir un entourage qui encourage la vaccination"))
# freinsleviers_entouragedecons
dt_participant[freinsleviers_entouragedecons == "", freinsleviers_entouragedecons := "NSPP"]
dt_participant[, freinsleviers_entouragedecons := as.factor(freinsleviers_entouragedecons)]
setattr(dt_participant$freinsleviers_entouragedecons, "label", c("Avoir un entourage qui déconseille la vaccination"))
# statut vaccinal complet vs incomplet, non vacciné et je ne sais pas
dt_participant[, statutvac_complet_fct2 := "Non/NSP/Incomplet"]
dt_participant[nbdose=="Deux doses (ou trois)", statutvac_complet_fct2 := "Oui"]
dt_participant[, statutvac_complet_fct2 := factor(statutvac_complet_fct2, levels = c( "Non/NSP/Incomplet","Oui"))]
#parcours possibles
## Schéma complet
# Cabinet -> Cabinet
# Cabinet -> Centre de vaccination
# Cabinet -> Pharmacie
# Centre de vaccination -> Cabinet
# Centre de vaccination -> Centre de vaccination
# Centre de vaccination -> Pharmacie
# Pharmacie -> Cabinet
# Pharmacie -> Centre de vaccination
# Pharmacie -> Pharmacie
dt_participant[, parcours_vac_fct9 := NA_character_]
dt_participant[lieudose1 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre" & lieudose2 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre", parcours_vac_fct9 := "Cabinet -> Cabinet"]
dt_participant[lieudose1 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre" & lieudose2 == "Centre de vaccination", parcours_vac_fct9 := "Cabinet -> Centre de vaccination"]
dt_participant[lieudose1 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre" & lieudose2 == "Pharmacie", parcours_vac_fct9 := "Cabinet -> Pharmacie"]
dt_participant[lieudose1 == "Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu)" & lieudose2 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre", parcours_vac_fct9 := "Centre de vaccination -> Cabinet"]
dt_participant[lieudose1 == "Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu)" & lieudose2 == "Centre de vaccination", parcours_vac_fct9 := "Centre de vaccination -> Centre de vaccination"]
dt_participant[lieudose1 == "Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu)" & lieudose2 == "Pharmacie", parcours_vac_fct9 := "Centre de vaccination -> Pharmacie"]
dt_participant[lieudose1 == "Pharmacie" & lieudose2 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre", parcours_vac_fct9 := "Pharmacie -> Cabinet"]
dt_participant[lieudose1 == "Pharmacie" & lieudose2 == "Centre de vaccination", parcours_vac_fct9 := "Pharmacie -> Centre de vaccination"]
dt_participant[lieudose1 == "Pharmacie" & lieudose2 == "Pharmacie", parcours_vac_fct9 := "Pharmacie -> Pharmacie"]
dt_participant[, parcours_vac_fct9 := as.factor(parcours_vac_fct9)]
# Parcours vac total (merge de parcours_vac_fct9 et de ceux qui n'ont fait qu'une dose)
dt_participant[, parcours_vac_total_fct12 := parcours_vac_fct9]
dt_participant[is.na(parcours_vac_fct9) &
lieudose1 == "Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu)", parcours_vac_total_fct12 := "Centre de vaccination -> pas de 2eme dose"]
dt_participant[is.na(parcours_vac_fct9) &
lieudose1 == "Cabinet infirmier, médecin, sage-femme, maison de santé, autre", parcours_vac_total_fct12 := "Cabinet -> pas de 2eme dose"]
dt_participant[is.na(parcours_vac_fct9) &
lieudose1 == "Pharmacie", parcours_vac_total_fct12 := "Pharmacie -> pas de 2eme dose"]
dt_participant[, parcours_vac_total_fct12 := factor(parcours_vac_total_fct12, levels =
c("Centre de vaccination -> Cabinet",
"Centre de vaccination -> Centre de vaccination",
"Centre de vaccination -> Pharmacie",
"Centre de vaccination -> pas de 2eme dose",
"Pharmacie -> Cabinet",
"Pharmacie -> Centre de vaccination",
"Pharmacie -> Pharmacie",
"Pharmacie -> pas de 2eme dose",
"Cabinet -> Cabinet",
"Cabinet -> Centre de vaccination",
"Cabinet -> Pharmacie",
"Cabinet -> pas de 2eme dose"))]dt_participant[, id_enqueteur := str_extract(toupper(idenq), "^.{2}")]
#BO -> BA, AB -> BA
dt_participant[id_enqueteur %in% c("BO", "BA"), id_enqueteur := "AB"]
## CC -> GC
dt_participant[id_enqueteur %in% c("CC"), id_enqueteur := "GC"]
## ID -> IG
dt_participant[id_enqueteur %in% c("ID"), id_enqueteur := "IG"]On va créer une variable enqueteur à partir de l’identifiant de l’enquêteur.
#plot a small histogram of the distribution of gender
# considering the order Female(F), Male(M), Non-binary(NB), Other(O)
# x is a vector of 4 values giving directly the numbers in that order
plot_gen = function(x){
df = data.frame(genre = c("F", "M", "NB", "O"), n = x)
p = ggplot(df, aes(x = genre, y = n)) +
geom_bar(stat = "identity", fill = "lightblue") +
geom_text(aes(label = genre), y = 0, size = 20, vjust = -0.5) +
scale_y_continuous(name = NULL) +
scale_x_discrete(name = NULL)+
theme_minimal(16) +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
invisible(p)
}
#tabyl(dt_participant$id_enqueteur)
freq_enqueteurs = dt_participant[, .(n=.N,
percent = .N/nrow(dt_participant),
Age_part = paste(round(mean(age, na.rm = TRUE),1),"ans")),
by = id_enqueteur]
freq_enqueteurs = merge(freq_enqueteurs, table_enqueteurs, by = "id_enqueteur", all = TRUE )
genre_list = split(dt_participant$genre_fct4, dt_participant$id_enqueteur)
tab_genre_list = lapply(genre_list, \(x){table(x)|>as.numeric()})
plot_list <- lapply(seq_along(tab_genre_list),
FUN =function(x){plot_gen(tab_genre_list[[x]])})
invisible(lapply(plot_list, print))freq_enqueteurs[, genre:=sprintf("{width=1in}",
opts_current$get("fig.path"), "enq_table", 1:nrow(freq_enqueteurs)) ]
freq_enqueteurs[, percent := scales::percent(percent, accuracy = 0.01)]
#mettre dans l'ordre du plus grand nombre au plus petit nombre
setcolorder(freq_enqueteurs, c("id_enqueteur", "Nom"))
kable(freq_enqueteurs[order(-n)],
col.names = c("id", "Enquêteur", "Nombre de participants", "Pourcentage", "Âge moyen des participants", "Répartition des genres")) #|>| id | Enquêteur | Nombre de participants | Pourcentage | Âge moyen des participants | Répartition des genres |
|---|---|---|---|---|---|
| FJ | JATHIERES François | 76 | 7.72% | 20.5 ans | |
| AV | VINCENT Arthur | 67 | 6.81% | 20.4 ans | |
| NR | ROUX Nicolas | 64 | 6.50% | 20.2 ans | |
| PH | HARDY Perrine | 62 | 6.30% | 20.5 ans | |
| PP | PENKA Parfait | 60 | 6.10% | 20.2 ans | |
| YB | BENAÏSSA Yamssal | 58 | 5.89% | 21.3 ans | |
| BM | MOUKAM LOWE Bride Barth | 53 | 5.39% | 20.6 ans | |
| QB | BOSCLAS de REALS Quiterie | 49 | 4.98% | 20.5 ans | |
| GC | COTOMALE Bignon, Juste, Gloria | 46 | 4.67% | 20.2 ans | |
| JL | LEVIVIER Joséphine | 45 | 4.57% | 20.2 ans | |
| MA | ABBOUD Marilyne | 45 | 4.57% | 20.3 ans | |
| IG | GUEYE Ibrahima Niass | 43 | 4.37% | 19.7 ans | |
| LB | BROCK Laure Pepita | 40 | 4.07% | 20.8 ans | |
| LV | VILLA CASTILLO Luz | 38 | 3.86% | 21.1 ans | |
| AB | AKONDE Bolade | 35 | 3.56% | 21.1 ans | |
| AS | SILINI Ahlem | 33 | 3.35% | 21 ans | |
| MR | RABENIARY RASOAMANANJARA Madeleine | 32 | 3.25% | 20.5 ans | |
| CM | MARTIAS Cécile | 30 | 3.05% | 20.3 ans | |
| MW | WESLETI Marwa | 30 | 3.05% | 20.4 ans | |
| OB | BELL Olga | 30 | 3.05% | 20.9 ans | |
| RM | MAHMABA KUPANYA MBAMBU Rachel | 29 | 2.95% | 20.9 ans | |
| ES | SIMON Emeline | 18 | 1.83% | 20.8 ans | |
| NF | FOURNET Nelly | 1 | 0.10% | 23 ans |
dt_participant_stagiaire <- copy(dt_participant)
dt_participant_stagiaire[, ':='(id = NULL, submitdate = NULL,
lastpage = NULL, idenq = NULL,
genre = NULL, remarques = NULL,
genre_fct4 = NULL
)]
#haven::write_dta(dt_participant_stagiaire, path=here("data","dt_participant_stagiaire.dta"), version = 14)
# #sauvegarde en RDS
# saveRDS(dt_participant, here("data","dt_participant.rds"))
# saveRDS(dt_participant_stagiaire, here("data","dt_participant_stagiaire.rds"))
# #sauvegarde en excel
# writexl::write_xlsx(dt_participant_stagiaire, here("data","dt_participant_stagiaire.xlsx"))var_sociodemo = c("age", "age_fct3", "genre_fct3", "etudiant2026", "statut2025", "filiere", "rennes_metropole", "logement", "sitfinanciere", "suivimedical", "evtcollectif")
gtsummary::tbl_summary(dt_participant_stagiaire, include = all_of(var_sociodemo),
type = all_continuous() ~ "continuous",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |> add_ci()| Characteristic | N = 9841 | 95% CI |
|---|---|---|
| age | ||
| 18 | 148 (15%) | 13%, 17% |
| 19 | 200 (20%) | 18%, 23% |
| 20 | 224 (23%) | 20%, 26% |
| 21 | 139 (14%) | 12%, 16% |
| 22 | 108 (11%) | 9.1%, 13% |
| 23 | 68 (6.9%) | 5.4%, 8.7% |
| 24 | 52 (5.3%) | 4.0%, 6.9% |
| 25 | 28 (2.8%) | 1.9%, 4.1% |
| 26 | 17 (1.7%) | 1.0%, 2.8% |
| age_fct3 | ||
| 18-19 | 348 (35%) | 32%, 38% |
| 20-21 | 363 (37%) | 34%, 40% |
| 22-26 | 273 (28%) | 25%, 31% |
| genre_fct3 | ||
| F | 655 (67%) | 64%, 69% |
| M | 311 (32%) | 29%, 35% |
| NB/Autre | 18 (1.8%) | 1.1%, 2.9% |
| etudiant2026 | ||
| Oui | 984 (100%) | 100%, 100% |
| statut2025 | ||
| Autre | 35 (3.6%) | 2.5%, 5.0% |
| Etudiant | 757 (77%) | 74%, 80% |
| Lycéen | 190 (19%) | 17%, 22% |
| Personnel | 2 (0.2%) | 0.04%, 0.82% |
| filiere | ||
| Autre | 104 (11%) | 8.8%, 13% |
| Langues, Arts, lettres et communication | 227 (23%) | 20%, 26% |
| Pre-BAC | 188 (19%) | 17%, 22% |
| Santé (Dentaire, Médecine, Pharmacie, PAS/LAS) | 224 (23%) | 20%, 26% |
| Sciences humaines et sociales | 228 (23%) | 21%, 26% |
| STAPS | 13 (1.3%) | 0.74%, 2.3% |
| A vécu à Rennes Métropole en 2025 | ||
| Non | 252 (26%) | 23%, 29% |
| Oui | 721 (74%) | 71%, 77% |
| Unknown | 11 | |
| logement | ||
| Logement individuel hors résidence | 225 (23%) | 20%, 26% |
| Autre | 7 (0.7%) | 0.31%, 1.5% |
| Logement partagé hors résidence (colocation, couple, …) | 173 (18%) | 15%, 20% |
| Résidence familiale | 420 (43%) | 40%, 46% |
| Résidence universitaire/étudiante | 159 (16%) | 14%, 19% |
| sitfinanciere | ||
| C’était difficile | 45 (4.6%) | 3.4%, 6.2% |
| C’était juste, il fallait faire attention | 194 (20%) | 17%, 23% |
| ça allait | 475 (49%) | 45%, 52% |
| Vous étiez à l'aise | 263 (27%) | 24%, 30% |
| Unknown | 7 | |
| Suivi pour maladie chronique | ||
| Non | 884 (91%) | 89%, 93% |
| Oui | 83 (8.6%) | 6.9%, 11% |
| Unknown | 17 | |
| Participe à des évènements collectifs | ||
| Jamais | 174 (18%) | 15%, 20% |
| Occasionnellement | 399 (41%) | 37%, 44% |
| Souvent | 411 (42%) | 39%, 45% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
var_conn_info = c("score_signes", "score_signes_fct3", "connaissance_transmission", "score_protection", "score_protection_fct3", "gravite")
gtsummary::tbl_summary(dt_participant_stagiaire, include = all_of(var_conn_info),
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |> add_ci()| Characteristic | N = 9841 | 95% CI |
|---|---|---|
| score_signes | ||
| -0.5 | 63 (6.4%) | 5.0%, 8.2% |
| 0 | 48 (4.9%) | 3.7%, 6.5% |
| 0.5 | 82 (8.3%) | 6.7%, 10% |
| 1 | 402 (41%) | 38%, 44% |
| 1.5 | 27 (2.7%) | 1.9%, 4.0% |
| 2 | 281 (29%) | 26%, 32% |
| 3 | 81 (8.2%) | 6.6%, 10% |
| score_signes_fct3 | ||
| Pas de connaissance | 111 (11%) | 9.4%, 13% |
| Connaissance imparfaite | 511 (52%) | 49%, 55% |
| Bonne connaissance | 362 (37%) | 34%, 40% |
| connaissance_transmission | ||
| Non | 495 (50%) | 47%, 53% |
| Oui | 489 (50%) | 47%, 53% |
| score_protection | ||
| -0.5 | 23 (2.3%) | 1.5%, 3.5% |
| 0 | 178 (18%) | 16%, 21% |
| 0.5 | 31 (3.2%) | 2.2%, 4.5% |
| 1 | 359 (36%) | 33%, 40% |
| 1.5 | 20 (2.0%) | 1.3%, 3.2% |
| 2 | 276 (28%) | 25%, 31% |
| 2.5 | 2 (0.2%) | 0.04%, 0.82% |
| 3 | 87 (8.8%) | 7.2%, 11% |
| 4 | 8 (0.8%) | 0.38%, 1.7% |
| score_protection_fct3 | ||
| Pas de connaissance | 201 (20%) | 18%, 23% |
| Connaissance imparfaite | 412 (42%) | 39%, 45% |
| Bonne connaissance | 371 (38%) | 35%, 41% |
| gravite | ||
| Faible | 9 (0.9%) | 0.46%, 1.8% |
| Modérée | 142 (15%) | 13%, 17% |
| Importante | 805 (84%) | 82%, 86% |
| Unknown | 28 | |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
var_signes = c(paste0("signes_", 1:10))
gtsummary::tbl_summary(dt_participant_stagiaire, include = all_of(var_signes),
missing = "no",missing_stat = "{N_miss}",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |> add_ci()| Characteristic | N = 9841 | 95% CI |
|---|---|---|
| Ne connais pas de signes de la méningite | ||
| Oui | 287 (29%) | 26%, 32% |
| Non | 697 (71%) | 68%, 74% |
| Maux de tête (intenses) | ||
| Oui | 287 (29%) | 26%, 32% |
| Non | 697 (71%) | 68%, 74% |
| Apparition de tâches rouges ou violacées sur la peau (purpura) | ||
| Oui | 73 (10%) | 8.3%, 13% |
| Non | 624 (90%) | 87%, 92% |
| Confusion, somnolence | ||
| Oui | 48 (6.9%) | 5.2%, 9.1% |
| Non | 649 (93%) | 91%, 95% |
| Raideur de la nuque | ||
| Oui | 245 (35%) | 32%, 39% |
| Non | 452 (65%) | 61%, 68% |
| Gène à la lumière vive | ||
| Oui | 110 (16%) | 13%, 19% |
| Non | 587 (84%) | 81%, 87% |
| Fièvre | ||
| Oui | 337 (48%) | 45%, 52% |
| Non | 360 (52%) | 48%, 55% |
| Nausées, vomissements | ||
| Oui | 156 (22%) | 19%, 26% |
| Non | 541 (78%) | 74%, 81% |
| Douleurs musculaires et articulaires | ||
| Oui | 87 (12%) | 10%, 15% |
| Non | 610 (88%) | 85%, 90% |
| Propositions incorrectes (au moins une) | ||
| Oui | 172 (25%) | 22%, 28% |
| Non | 525 (75%) | 72%, 78% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
var_vacc_camp = c("connaisscampagne", "moyencampagne_1", "moyencampagne_2", "moyencampagne_3", "moyencampagne_4", "moyencampagne_5", "moyencampagne_6", "moyencampagne_7", "moyencampagne_8", "moyencampagne_univ", "statutvac", "statutvac_fct2", "statutvac_complet_fct2", "vaccampagne", "nbdose", "lieudose1", "lieudose2", "raisonschincomplet", "freinsleviers_infovac", "freinsleviers_infomening", "freinsleviers_acces", "freinsleviers_confvac", "freinsleviers_peurvac", "freinsleviers_confautorite", "freinsleviers_concerne", "freinsleviers_entourageencou", "freinsleviers_entouragedecons")
gtsummary::tbl_summary(dt_participant_stagiaire, include = all_of(var_vacc_camp),
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |> add_ci()| Characteristic | N = 9841 | 95% CI |
|---|---|---|
| connaisscampagne | ||
| Non | 257 (26%) | 24%, 29% |
| Oui | 717 (74%) | 71%, 76% |
| Unknown | 10 | |
| moyencampagne_1 | ||
| Non | 519 (72%) | 69%, 76% |
| Oui | 198 (28%) | 24%, 31% |
| Unknown | 267 | |
| moyencampagne_2 | ||
| Non | 538 (75%) | 72%, 78% |
| Oui | 179 (25%) | 22%, 28% |
| Unknown | 267 | |
| moyencampagne_3 | ||
| Non | 658 (92%) | 89%, 94% |
| Oui | 59 (8.2%) | 6.4%, 11% |
| Unknown | 267 | |
| moyencampagne_4 | ||
| Non | 634 (88%) | 86%, 91% |
| Oui | 83 (12%) | 9.4%, 14% |
| Unknown | 267 | |
| moyencampagne_5 | ||
| Non | 652 (91%) | 89%, 93% |
| Oui | 65 (9.1%) | 7.1%, 11% |
| Unknown | 267 | |
| moyencampagne_6 | ||
| Non | 470 (66%) | 62%, 69% |
| Oui | 247 (34%) | 31%, 38% |
| Unknown | 267 | |
| moyencampagne_7 | ||
| Non | 342 (48%) | 44%, 51% |
| Oui | 375 (52%) | 49%, 56% |
| Unknown | 267 | |
| moyencampagne_8 | ||
| Non | 710 (99%) | 98%, 100% |
| Oui | 7 (1.0%) | 0.43%, 2.1% |
| Unknown | 267 | |
| moyencampagne_univ | ||
| Non | 946 (96%) | 95%, 97% |
| Oui | 38 (3.9%) | 2.8%, 5.3% |
| statutvac | ||
| Ne sait pas | 112 (11%) | 9.5%, 14% |
| Non | 320 (33%) | 30%, 36% |
| Oui | 552 (56%) | 53%, 59% |
| statutvac_fct2 | ||
| Non/Ne sait pas | 432 (44%) | 41%, 47% |
| Oui | 552 (56%) | 53%, 59% |
| statutvac_complet_fct2 | ||
| Non/NSP/Incomplet | 566 (58%) | 54%, 61% |
| Oui | 418 (42%) | 39%, 46% |
| vaccampagne | ||
| Après | 44 (8.0%) | 5.9%, 11% |
| Avant | 46 (8.4%) | 6.2%, 11% |
| Ne sait pas | 2 (0.4%) | 0.06%, 1.5% |
| Pendant | 458 (83%) | 80%, 86% |
| Unknown | 434 | |
| nbdose | ||
| Deux doses (ou trois) | 418 (84%) | 81%, 87% |
| Une dose | 78 (16%) | 13%, 19% |
| Unknown | 488 | |
| lieudose1 | ||
| Cabinet infirmier, médecin, sage-femme, maison de santé, autre | 54 (11%) | 8.4%, 14% |
| Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu) | 222 (45%) | 40%, 49% |
| Pharmacie | 220 (44%) | 40%, 49% |
| Unknown | 488 | |
| lieudose2 | ||
| Cabinet infirmier, médecin, sage-femme, maison de santé, autre | 43 (10%) | 7.6%, 14% |
| Centre de vaccination | 175 (42%) | 37%, 47% |
| Ne sait pas | 2 (0.5%) | 0.08%, 1.9% |
| Pharmacie | 198 (47%) | 43%, 52% |
| Unknown | 566 | |
| raisonschincomplet | ||
| Autre | 1 (1.3%) | 0.07%, 8.1% |
| J’ai déménagé, j’ai pas pu, j’avais aqua-poney | 31 (41%) | 30%, 53% |
| J’ai eu des effets indésirables à la première dose | 3 (3.9%) | 1.0%, 12% |
| J’ai oublié qu’il y avait une deuxième dose | 29 (38%) | 27%, 50% |
| Je ne savais pas qu’il y avait une deuxième dose | 7 (9.2%) | 4.1%, 19% |
| Je pensais qu’elle n’était pas nécessaire | 5 (6.6%) | 2.4%, 15% |
| Unknown | 908 | |
| Bien informé sur les modalités de vaccination | ||
| Non | 273 (28%) | 25%, 31% |
| NSPP | 103 (10%) | 8.7%, 13% |
| Oui | 608 (62%) | 59%, 65% |
| Bien informé sur les risques liés à la méningite | ||
| Non | 341 (35%) | 32%, 38% |
| NSPP | 88 (8.9%) | 7.3%, 11% |
| Oui | 555 (56%) | 53%, 60% |
| Facilité d’accès à la vaccination | ||
| Non | 104 (11%) | 8.8%, 13% |
| NSPP | 182 (18%) | 16%, 21% |
| Oui | 698 (71%) | 68%, 74% |
| Confiance dans les vaccins contre la méningite | ||
| Non | 75 (7.6%) | 6.1%, 9.5% |
| NSPP | 120 (12%) | 10%, 14% |
| Oui | 789 (80%) | 78%, 83% |
| Peur des des effets indésirables de ce vaccin | ||
| Non | 669 (68%) | 65%, 71% |
| NSPP | 97 (9.9%) | 8.1%, 12% |
| Oui | 218 (22%) | 20%, 25% |
| Confiance dans les autorités de santé | ||
| Non | 56 (5.7%) | 4.4%, 7.4% |
| NSPP | 99 (10%) | 8.3%, 12% |
| Oui | 829 (84%) | 82%, 86% |
| Se sentir concerné par la campagne de vaccination | ||
| Non | 237 (24%) | 21%, 27% |
| NSPP | 147 (15%) | 13%, 17% |
| Oui | 600 (61%) | 58%, 64% |
| Avoir un entourage qui encourage la vaccination | ||
| Non | 297 (30%) | 27%, 33% |
| NSPP | 101 (10%) | 8.5%, 12% |
| Oui | 586 (60%) | 56%, 63% |
| Avoir un entourage qui déconseille la vaccination | ||
| Non | 766 (78%) | 75%, 80% |
| NSPP | 166 (17%) | 15%, 19% |
| Oui | 52 (5.3%) | 4.0%, 6.9% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
var_det_vac_camp = c("age_fct3", "genre_fct3", "rennes_metropole", "statut2025", "filiere_fct5", "niveauetude","logement", "sitfinanciere", "sitfinanciere_fct2", "suivimedical", "evtcollectif", "score_signes_fct3", "connaissance_transmission","score_protection_fct3", "gravite_fct2", "connaisscampagne", "freinsleviers_infovac", "freinsleviers_infomening", "freinsleviers_acces", "freinsleviers_confvac", "freinsleviers_peurvac", "freinsleviers_confautorite", "freinsleviers_concerne", "freinsleviers_entourageencou", "freinsleviers_entouragedecons")
gtsummary::tbl_summary(dt_participant_stagiaire, include = all_of(var_det_vac_camp), by = statutvac_fct2,
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() |>
add_p()The following errors were returned during `add_p()`:
✖ For variable `logement` (`statutvac_fct2`) and "estimate", "p.value",
"conf.low", and "conf.high" statistics: FEXACT error 7(location). LDSTP=18480
is too small for this problem, (pastp=205.816, ipn_0:=ipoin[itp=421]=100,
stp[ipn_0]=211.25). Increase workspace or consider using
'simulate.p.value=TRUE'
| Characteristic | Non/Ne sait pas N = 4321 |
95% CI | Oui N = 5521 |
95% CI | p-value2 |
|---|---|---|---|---|---|
| age_fct3 | 0.003 | ||||
| 18-19 | 175 (41%) | 36%, 45% | 173 (31%) | 28%, 35% | |
| 20-21 | 137 (32%) | 27%, 36% | 226 (41%) | 37%, 45% | |
| 22-26 | 120 (28%) | 24%, 32% | 153 (28%) | 24%, 32% | |
| genre_fct3 | 0.073 | ||||
| F | 272 (63%) | 58%, 67% | 383 (69%) | 65%, 73% | |
| M | 153 (35%) | 31%, 40% | 158 (29%) | 25%, 33% | |
| NB/Autre | 7 (1.6%) | 0.71%, 3.5% | 11 (2.0%) | 1.1%, 3.6% | |
| A vécu à Rennes Métropole en 2025 | <0.001 | ||||
| Non | 190 (45%) | 40%, 49% | 62 (11%) | 8.9%, 14% | |
| Oui | 236 (55%) | 51%, 60% | 485 (89%) | 86%, 91% | |
| Unknown | 6 | 5 | |||
| statut2025 | <0.001 | ||||
| Autre | 27 (6.3%) | 4.2%, 9.1% | 8 (1.4%) | 0.68%, 3.0% | |
| Etudiant | 282 (65%) | 61%, 70% | 475 (86%) | 83%, 89% | |
| Lycéen | 122 (28%) | 24%, 33% | 68 (12%) | 9.8%, 15% | |
| Personnel | 1 (0.2%) | 0.01%, 1.5% | 1 (0.2%) | 0.01%, 1.2% | |
| filiere_fct5 | <0.001 | ||||
| Langues, Arts, lettres et communication | 103 (24%) | 20%, 28% | 124 (22%) | 19%, 26% | |
| Santé (Dentaire, Médecine, Pharmacie, PAS/LAS) | 40 (9.3%) | 6.8%, 12% | 184 (33%) | 29%, 37% | |
| Sciences humaines et sociales | 97 (22%) | 19%, 27% | 131 (24%) | 20%, 28% | |
| Pre-BAC | 121 (28%) | 24%, 33% | 67 (12%) | 9.6%, 15% | |
| Autre | 71 (16%) | 13%, 20% | 46 (8.3%) | 6.2%, 11% | |
| niveauetude | <0.001 | ||||
| Baccalauréat / DAEU | 260 (61%) | 56%, 66% | 369 (67%) | 63%, 71% | |
| Brevet | 69 (16%) | 13%, 20% | 35 (6.4%) | 4.5%, 8.8% | |
| Licence/BTS | 82 (19%) | 16%, 23% | 128 (23%) | 20%, 27% | |
| Master | 15 (3.5%) | 2.1%, 5.9% | 19 (3.4%) | 2.1%, 5.4% | |
| Unknown | 6 | 1 | |||
| logement | |||||
| Logement individuel hors résidence | 72 (17%) | 13%, 21% | 153 (28%) | 24%, 32% | |
| Autre | 7 (1.6%) | 0.71%, 3.5% | 0 (0%) | 0.00%, 0.86% | |
| Logement partagé hors résidence (colocation, couple, …) | 66 (15%) | 12%, 19% | 107 (19%) | 16%, 23% | |
| Résidence familiale | 207 (48%) | 43%, 53% | 213 (39%) | 35%, 43% | |
| Résidence universitaire/étudiante | 80 (19%) | 15%, 23% | 79 (14%) | 12%, 18% | |
| sitfinanciere | 0.045 | ||||
| C’était difficile | 25 (5.9%) | 3.9%, 8.6% | 20 (3.6%) | 2.3%, 5.7% | |
| C’était juste, il fallait faire attention | 91 (21%) | 18%, 26% | 103 (19%) | 16%, 22% | |
| ça allait | 213 (50%) | 45%, 55% | 262 (48%) | 43%, 52% | |
| Vous étiez à l'aise | 98 (23%) | 19%, 27% | 165 (30%) | 26%, 34% | |
| Unknown | 5 | 2 | |||
| sitfinanciere_fct2 | 0.083 | ||||
| Difficile/Juste | 116 (27%) | 23%, 32% | 123 (22%) | 19%, 26% | |
| Facile/À l'aise | 311 (73%) | 68%, 77% | 427 (78%) | 74%, 81% | |
| Unknown | 5 | 2 | |||
| Suivi pour maladie chronique | 0.6 | ||||
| Non | 378 (91%) | 88%, 93% | 506 (92%) | 89%, 94% | |
| Oui | 38 (9.1%) | 6.6%, 12% | 45 (8.2%) | 6.1%, 11% | |
| Unknown | 16 | 1 | |||
| Participe à des évènements collectifs | 0.4 | ||||
| Jamais | 84 (19%) | 16%, 24% | 90 (16%) | 13%, 20% | |
| Occasionnellement | 170 (39%) | 35%, 44% | 229 (41%) | 37%, 46% | |
| Souvent | 178 (41%) | 37%, 46% | 233 (42%) | 38%, 46% | |
| score_signes_fct3 | <0.001 | ||||
| Pas de connaissance | 61 (14%) | 11%, 18% | 50 (9.1%) | 6.9%, 12% | |
| Connaissance imparfaite | 282 (65%) | 61%, 70% | 229 (41%) | 37%, 46% | |
| Bonne connaissance | 89 (21%) | 17%, 25% | 273 (49%) | 45%, 54% | |
| connaissance_transmission | <0.001 | ||||
| Non | 275 (64%) | 59%, 68% | 220 (40%) | 36%, 44% | |
| Oui | 157 (36%) | 32%, 41% | 332 (60%) | 56%, 64% | |
| score_protection_fct3 | <0.001 | ||||
| Pas de connaissance | 145 (34%) | 29%, 38% | 56 (10%) | 7.8%, 13% | |
| Connaissance imparfaite | 171 (40%) | 35%, 44% | 241 (44%) | 39%, 48% | |
| Bonne connaissance | 116 (27%) | 23%, 31% | 255 (46%) | 42%, 50% | |
| gravite_fct2 | <0.001 | ||||
| Faible/Modérée | 99 (24%) | 20%, 29% | 52 (9.5%) | 7.2%, 12% | |
| Importante | 308 (76%) | 71%, 80% | 497 (91%) | 88%, 93% | |
| Unknown | 25 | 3 | |||
| connaisscampagne | <0.001 | ||||
| Non | 222 (52%) | 47%, 57% | 35 (6.4%) | 4.5%, 8.8% | |
| Oui | 202 (48%) | 43%, 53% | 515 (94%) | 91%, 95% | |
| Unknown | 8 | 2 | |||
| Bien informé sur les modalités de vaccination | <0.001 | ||||
| Non | 224 (52%) | 47%, 57% | 49 (8.9%) | 6.7%, 12% | |
| NSPP | 89 (21%) | 17%, 25% | 14 (2.5%) | 1.4%, 4.3% | |
| Oui | 119 (28%) | 23%, 32% | 489 (89%) | 86%, 91% | |
| Bien informé sur les risques liés à la méningite | <0.001 | ||||
| Non | 228 (53%) | 48%, 58% | 113 (20%) | 17%, 24% | |
| NSPP | 69 (16%) | 13%, 20% | 19 (3.4%) | 2.1%, 5.4% | |
| Oui | 135 (31%) | 27%, 36% | 420 (76%) | 72%, 80% | |
| Facilité d’accès à la vaccination | <0.001 | ||||
| Non | 93 (22%) | 18%, 26% | 11 (2.0%) | 1.1%, 3.6% | |
| NSPP | 166 (38%) | 34%, 43% | 16 (2.9%) | 1.7%, 4.8% | |
| Oui | 173 (40%) | 35%, 45% | 525 (95%) | 93%, 97% | |
| Confiance dans les vaccins contre la méningite | <0.001 | ||||
| Non | 61 (14%) | 11%, 18% | 14 (2.5%) | 1.4%, 4.3% | |
| NSPP | 93 (22%) | 18%, 26% | 27 (4.9%) | 3.3%, 7.1% | |
| Oui | 278 (64%) | 60%, 69% | 511 (93%) | 90%, 95% | |
| Peur des des effets indésirables de ce vaccin | <0.001 | ||||
| Non | 238 (55%) | 50%, 60% | 431 (78%) | 74%, 81% | |
| NSPP | 78 (18%) | 15%, 22% | 19 (3.4%) | 2.1%, 5.4% | |
| Oui | 116 (27%) | 23%, 31% | 102 (18%) | 15%, 22% | |
| Confiance dans les autorités de santé | <0.001 | ||||
| Non | 37 (8.6%) | 6.2%, 12% | 19 (3.4%) | 2.1%, 5.4% | |
| NSPP | 68 (16%) | 13%, 20% | 31 (5.6%) | 3.9%, 8.0% | |
| Oui | 327 (76%) | 71%, 80% | 502 (91%) | 88%, 93% | |
| Se sentir concerné par la campagne de vaccination | <0.001 | ||||
| Non | 192 (44%) | 40%, 49% | 45 (8.2%) | 6.1%, 11% | |
| NSPP | 124 (29%) | 25%, 33% | 23 (4.2%) | 2.7%, 6.3% | |
| Oui | 116 (27%) | 23%, 31% | 484 (88%) | 85%, 90% | |
| Avoir un entourage qui encourage la vaccination | <0.001 | ||||
| Non | 209 (48%) | 44%, 53% | 88 (16%) | 13%, 19% | |
| NSPP | 85 (20%) | 16%, 24% | 16 (2.9%) | 1.7%, 4.8% | |
| Oui | 138 (32%) | 28%, 37% | 448 (81%) | 78%, 84% | |
| Avoir un entourage qui déconseille la vaccination | <0.001 | ||||
| Non | 299 (69%) | 65%, 73% | 467 (85%) | 81%, 87% | |
| NSPP | 103 (24%) | 20%, 28% | 63 (11%) | 8.9%, 14% | |
| Oui | 30 (6.9%) | 4.8%, 9.9% | 22 (4.0%) | 2.6%, 6.1% | |
| Abbreviation: CI = Confidence Interval | |||||
| 1 n (%) | |||||
| 2 Pearson’s Chi-squared test; Fisher’s exact test; NA | |||||
gtsummary::tbl_summary(dt_participant_stagiaire, include = "statutvac_fct2",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 9841 | 95% CI |
|---|---|---|
| statutvac_fct2 | ||
| Non/Ne sait pas | 432 (44%) | 41%, 47% |
| Oui | 552 (56%) | 53%, 59% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire, include = "statutvac_complet_fct2",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 9841 | 95% CI |
|---|---|---|
| statutvac_complet_fct2 | ||
| Non/NSP/Incomplet | 566 (58%) | 54%, 61% |
| Oui | 418 (42%) | 39%, 46% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire[statutvac_fct2 == "Oui"], include = "vaccampagne_pendantapres",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 5521 | 95% CI |
|---|---|---|
| vaccampagne_pendantapres | ||
| Avant | 46 (8.4%) | 6.3%, 11% |
| Pendant/Après | 502 (92%) | 89%, 94% |
| Unknown | 4 | |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire, include = "statutvac_fct2", by = "rennes_metropole",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() 11 missing rows in the "rennes_metropole" column have been removed.
| Characteristic | Non N = 2521 |
95% CI | Oui N = 7211 |
95% CI |
|---|---|---|---|---|
| statutvac_fct2 | ||||
| Non/Ne sait pas | 190 (75%) | 70%, 80% | 236 (33%) | 29%, 36% |
| Oui | 62 (25%) | 20%, 30% | 485 (67%) | 64%, 71% |
| Abbreviation: CI = Confidence Interval | ||||
| 1 n (%) | ||||
### Description des signes
# ggplot(dt_participant_stagiaire, aes(x = statutvac_fct2, fill = statutvac_fct2)) +
# geom_bar(stat="freq") +
# scale_fill_manual(values = c("lightblue", "lightcoral")) +
# labs(x = "Statut vaccinal", y = "Nombre de participants") +
# facet_wrap(~age_fct3) +
# theme_minimal(16) +
# theme(legend.position = "none",
# axis.text.x = element_text(angle = 45, hjust = 1))#parcours possibles
## Schéma complet
# Cabinet -> Cabinet
# Cabinet -> Centre de vaccination
# Cabinet -> Pharmacie
# Centre de vaccination -> Cabinet
# Centre de vaccination -> Centre de vaccination
# Centre de vaccination -> Pharmacie
# Pharmacie -> Cabinet
# Pharmacie -> Centre de vaccination
# Pharmacie -> Pharmacie
gtsummary::tbl_summary(dt_participant_stagiaire[nbdose=="Deux doses (ou trois)",], include ="parcours_vac_fct9",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 4181 | 95% CI |
|---|---|---|
| parcours_vac_fct9 | ||
| Cabinet -> Cabinet | 36 (8.7%) | 6.2%, 12% |
| Cabinet -> Centre de vaccination | 1 (0.2%) | 0.01%, 1.5% |
| Cabinet -> Pharmacie | 4 (1.0%) | 0.31%, 2.6% |
| Centre de vaccination -> Cabinet | 4 (1.0%) | 0.31%, 2.6% |
| Centre de vaccination -> Centre de vaccination | 170 (41%) | 36%, 46% |
| Centre de vaccination -> Pharmacie | 17 (4.1%) | 2.5%, 6.6% |
| Pharmacie -> Cabinet | 3 (0.7%) | 0.19%, 2.3% |
| Pharmacie -> Centre de vaccination | 4 (1.0%) | 0.31%, 2.6% |
| Pharmacie -> Pharmacie | 177 (43%) | 38%, 47% |
| Unknown | 2 | |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire[!is.na(nbdose),], include ="parcours_vac_total_fct12",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 4961 | 95% CI |
|---|---|---|
| parcours_vac_total_fct12 | ||
| Centre de vaccination -> Cabinet | 4 (0.8%) | 0.26%, 2.2% |
| Centre de vaccination -> Centre de vaccination | 170 (34%) | 30%, 39% |
| Centre de vaccination -> Pharmacie | 17 (3.4%) | 2.1%, 5.5% |
| Centre de vaccination -> pas de 2eme dose | 31 (6.3%) | 4.4%, 8.9% |
| Pharmacie -> Cabinet | 3 (0.6%) | 0.16%, 1.9% |
| Pharmacie -> Centre de vaccination | 4 (0.8%) | 0.26%, 2.2% |
| Pharmacie -> Pharmacie | 177 (36%) | 31%, 40% |
| Pharmacie -> pas de 2eme dose | 36 (7.3%) | 5.2%, 10% |
| Cabinet -> Cabinet | 36 (7.3%) | 5.2%, 10% |
| Cabinet -> Centre de vaccination | 1 (0.2%) | 0.01%, 1.3% |
| Cabinet -> Pharmacie | 4 (0.8%) | 0.26%, 2.2% |
| Cabinet -> pas de 2eme dose | 13 (2.6%) | 1.5%, 4.6% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire[!is.na(nbdose) &
lieudose1 =="Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu)",], include ="parcours_vac_total_fct12",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 2221 | 95% CI |
|---|---|---|
| parcours_vac_total_fct12 | ||
| Centre de vaccination -> Cabinet | 4 (1.8%) | 0.58%, 4.9% |
| Centre de vaccination -> Centre de vaccination | 170 (77%) | 70%, 82% |
| Centre de vaccination -> Pharmacie | 17 (7.7%) | 4.7%, 12% |
| Centre de vaccination -> pas de 2eme dose | 31 (14%) | 9.8%, 19% |
| Pharmacie -> Cabinet | 0 (0%) | 0.00%, 2.1% |
| Pharmacie -> Centre de vaccination | 0 (0%) | 0.00%, 2.1% |
| Pharmacie -> Pharmacie | 0 (0%) | 0.00%, 2.1% |
| Pharmacie -> pas de 2eme dose | 0 (0%) | 0.00%, 2.1% |
| Cabinet -> Cabinet | 0 (0%) | 0.00%, 2.1% |
| Cabinet -> Centre de vaccination | 0 (0%) | 0.00%, 2.1% |
| Cabinet -> Pharmacie | 0 (0%) | 0.00%, 2.1% |
| Cabinet -> pas de 2eme dose | 0 (0%) | 0.00%, 2.1% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire, include = "statutvac_complet_fct2",
by = "lieudose1",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() |>
add_p()488 missing rows in the "lieudose1" column have been removed.
| Characteristic | Cabinet infirmier, médecin, sage-femme, maison de santé, autre N = 541 |
95% CI | Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu) N = 2221 |
95% CI | Pharmacie N = 2201 |
95% CI | p-value2 |
|---|---|---|---|---|---|---|---|
| statutvac_complet_fct2 | 0.2 | ||||||
| Non/NSP/Incomplet | 13 (24%) | 14%, 38% | 30 (14%) | 9.4%, 19% | 35 (16%) | 11%, 22% | |
| Oui | 41 (76%) | 62%, 86% | 192 (86%) | 81%, 91% | 185 (84%) | 78%, 89% | |
| Abbreviation: CI = Confidence Interval | |||||||
| 1 n (%) | |||||||
| 2 Pearson’s Chi-squared test | |||||||
#parcours possibles
gtsummary::tbl_summary(dt_participant_stagiaire[nbdose=="Une dose",], include ="lieudose1",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 781 | 95% CI |
|---|---|---|
| lieudose1 | ||
| Cabinet infirmier, médecin, sage-femme, maison de santé, autre | 13 (17%) | 9.5%, 27% |
| Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu) | 30 (38%) | 28%, 50% |
| Pharmacie | 35 (45%) | 34%, 57% |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
gtsummary::tbl_summary(dt_participant_stagiaire[nbdose=="Une dose",], include ="raisonschincomplet",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() | Characteristic | N = 781 | 95% CI |
|---|---|---|
| raisonschincomplet | ||
| Autre | 1 (1.3%) | 0.07%, 8.1% |
| J’ai déménagé, j’ai pas pu, j’avais aqua-poney | 31 (41%) | 30%, 53% |
| J’ai eu des effets indésirables à la première dose | 3 (3.9%) | 1.0%, 12% |
| J’ai oublié qu’il y avait une deuxième dose | 29 (38%) | 27%, 50% |
| Je ne savais pas qu’il y avait une deuxième dose | 7 (9.2%) | 4.1%, 19% |
| Je pensais qu’elle n’était pas nécessaire | 5 (6.6%) | 2.4%, 15% |
| Unknown | 2 | |
| Abbreviation: CI = Confidence Interval | ||
| 1 n (%) | ||
#parcours possibles
gtsummary::tbl_summary(dt_participant_stagiaire[!is.na(lieudose1),], include ="lieudose1", by = "sitfinanciere_fct2",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() |>
add_p()2 missing rows in the "sitfinanciere_fct2" column have been removed.
| Characteristic | Difficile/Juste N = 1121 |
95% CI | Facile/À l’aise N = 3821 |
95% CI | p-value2 |
|---|---|---|---|---|---|
| lieudose1 | 0.004 | ||||
| Cabinet infirmier, médecin, sage-femme, maison de santé, autre | 5 (4.5%) | 1.7%, 11% | 49 (13%) | 9.7%, 17% | |
| Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu) | 63 (56%) | 47%, 66% | 157 (41%) | 36%, 46% | |
| Pharmacie | 44 (39%) | 30%, 49% | 176 (46%) | 41%, 51% | |
| Abbreviation: CI = Confidence Interval | |||||
| 1 n (%) | |||||
| 2 Pearson’s Chi-squared test | |||||
#parcours possibles
gtsummary::tbl_summary(dt_participant_stagiaire[!is.na(lieudose1),], include ="lieudose1", by = "connaisscampagne",
statistic = list(all_categorical() ~ "{n} ({p}%)", all_continuous() ~ "{mean} ({sd})")) |>
add_ci() |>
add_p()| Characteristic | Non N = 171 |
95% CI | Oui N = 4791 |
95% CI | p-value2 |
|---|---|---|---|---|---|
| lieudose1 | <0.001 | ||||
| Cabinet infirmier, médecin, sage-femme, maison de santé, autre | 7 (41%) | 19%, 67% | 47 (9.8%) | 7.4%, 13% | |
| Centre de vaccination (Lycée Bréquigny, RSB, Campus Villejean, Campus Beaulieu) | 2 (12%) | 2.1%, 38% | 220 (46%) | 41%, 51% | |
| Pharmacie | 8 (47%) | 24%, 71% | 212 (44%) | 40%, 49% | |
| Abbreviation: CI = Confidence Interval | |||||
| 1 n (%) | |||||
| 2 Fisher’s exact test | |||||
```{r}
#| warning: false
explanatory = c("age_fct3", "genre_fct3",
"filiere_fct5","rennes_metropole",
"sitfinanciere_fct2",
"suivimedical","evtcollectif","gravite_fct2","connaisscampagne",
"freinsleviers_infovac",
"freinsleviers_infomening","freinsleviers_acces",
"freinsleviers_confvac","freinsleviers_peurvac",
"freinsleviers_confautorite",
"freinsleviers_concerne","freinsleviers_entourageencou",
"freinsleviers_entouragedecons")
dependent = "statutvac_fct2"
# browser()
# fit_uni = dt_participant_stagiaire |>
# glmuni(dependent, explanatory, family = "quasibinomial") |>
# fit2df(exp = TRUE, estimate_name = "OR", estimate_suffix = " (univariable)")
#
# fit_multi = dt_participant_stagiaire |>
# glmmulti(dependent, explanatory, family = "quasibinomial") %>%
# fit2df(exp = TRUE, estimate_name = "OR", estimate_suffix = " (multivariable)")
#
# # Pipe together
# dt_participant_stagiaire |>
# summary_factorlist(dependent, explanatory, fit_id = TRUE) %>%
# ff_merge(fit_uni) %>%
# ff_merge(fit_multi) %>%
# select(-fit_id, -index) %>%
# dependent_label(dt_participant_stagiaire, dependent) -> t1
dt_participant_stagiaire |>
finalfit(dependent, explanatory, metrics = TRUE) -> t1
kable(t1, row.names = FALSE)
# DT::datatable(t1,
# rownames = FALSE,
# extensions = 'Buttons',
# options = list(
# scrollX = TRUE,
# dom = 'Brtip',
# pageLength = 100,
# buttons = list('pageLength','copy', list(
# extend = 'collection',
# buttons = c('csv', 'excel', 'pdf'),
# text = 'Download'
# ))))
```
|
|
# tableau tbl summary qui montre les valeurs manquantes des variables inclues dans le modèle de régression logistique multivariable
var_model = c("age_fct3", "genre_fct3",
"filiere_fct5","rennes_metropole",
"sitfinanciere_fct2",
"suivimedical","evtcollectif","gravite_fct2","connaisscampagne",
"freinsleviers_infovac",
"freinsleviers_infomening","freinsleviers_acces",
"freinsleviers_confvac","freinsleviers_peurvac",
"freinsleviers_confautorite",
"freinsleviers_concerne","freinsleviers_entourageencou",
"freinsleviers_entouragedecons")
gtsummary::tbl_summary(dt_participant_stagiaire, include = all_of(var_model), missing = "always") |> add_n() |> add_ci() | Characteristic | N | N = 9841 | 95% CI |
|---|---|---|---|
| age_fct3 | 984 | ||
| 18-19 | 348 (35%) | 32%, 38% | |
| 20-21 | 363 (37%) | 34%, 40% | |
| 22-26 | 273 (28%) | 25%, 31% | |
| Unknown | 0 | ||
| genre_fct3 | 984 | ||
| F | 655 (67%) | 64%, 69% | |
| M | 311 (32%) | 29%, 35% | |
| NB/Autre | 18 (1.8%) | 1.1%, 2.9% | |
| Unknown | 0 | ||
| filiere_fct5 | 984 | ||
| Langues, Arts, lettres et communication | 227 (23%) | 20%, 26% | |
| Santé (Dentaire, Médecine, Pharmacie, PAS/LAS) | 224 (23%) | 20%, 26% | |
| Sciences humaines et sociales | 228 (23%) | 21%, 26% | |
| Pre-BAC | 188 (19%) | 17%, 22% | |
| Autre | 117 (12%) | 10%, 14% | |
| Unknown | 0 | ||
| A vécu à Rennes Métropole en 2025 | 973 | ||
| Non | 252 (26%) | 23%, 29% | |
| Oui | 721 (74%) | 71%, 77% | |
| Unknown | 11 | ||
| sitfinanciere_fct2 | 977 | ||
| Difficile/Juste | 239 (24%) | 22%, 27% | |
| Facile/À l'aise | 738 (76%) | 73%, 78% | |
| Unknown | 7 | ||
| Suivi pour maladie chronique | 967 | ||
| Non | 884 (91%) | 89%, 93% | |
| Oui | 83 (8.6%) | 6.9%, 11% | |
| Unknown | 17 | ||
| Participe à des évènements collectifs | 984 | ||
| Jamais | 174 (18%) | 15%, 20% | |
| Occasionnellement | 399 (41%) | 37%, 44% | |
| Souvent | 411 (42%) | 39%, 45% | |
| Unknown | 0 | ||
| gravite_fct2 | 956 | ||
| Faible/Modérée | 151 (16%) | 14%, 18% | |
| Importante | 805 (84%) | 82%, 86% | |
| Unknown | 28 | ||
| connaisscampagne | 974 | ||
| Non | 257 (26%) | 24%, 29% | |
| Oui | 717 (74%) | 71%, 76% | |
| Unknown | 10 | ||
| Bien informé sur les modalités de vaccination | 984 | ||
| Non | 273 (28%) | 25%, 31% | |
| NSPP | 103 (10%) | 8.7%, 13% | |
| Oui | 608 (62%) | 59%, 65% | |
| Unknown | 0 | ||
| Bien informé sur les risques liés à la méningite | 984 | ||
| Non | 341 (35%) | 32%, 38% | |
| NSPP | 88 (8.9%) | 7.3%, 11% | |
| Oui | 555 (56%) | 53%, 60% | |
| Unknown | 0 | ||
| Facilité d’accès à la vaccination | 984 | ||
| Non | 104 (11%) | 8.8%, 13% | |
| NSPP | 182 (18%) | 16%, 21% | |
| Oui | 698 (71%) | 68%, 74% | |
| Unknown | 0 | ||
| Confiance dans les vaccins contre la méningite | 984 | ||
| Non | 75 (7.6%) | 6.1%, 9.5% | |
| NSPP | 120 (12%) | 10%, 14% | |
| Oui | 789 (80%) | 78%, 83% | |
| Unknown | 0 | ||
| Peur des des effets indésirables de ce vaccin | 984 | ||
| Non | 669 (68%) | 65%, 71% | |
| NSPP | 97 (9.9%) | 8.1%, 12% | |
| Oui | 218 (22%) | 20%, 25% | |
| Unknown | 0 | ||
| Confiance dans les autorités de santé | 984 | ||
| Non | 56 (5.7%) | 4.4%, 7.4% | |
| NSPP | 99 (10%) | 8.3%, 12% | |
| Oui | 829 (84%) | 82%, 86% | |
| Unknown | 0 | ||
| Se sentir concerné par la campagne de vaccination | 984 | ||
| Non | 237 (24%) | 21%, 27% | |
| NSPP | 147 (15%) | 13%, 17% | |
| Oui | 600 (61%) | 58%, 64% | |
| Unknown | 0 | ||
| Avoir un entourage qui encourage la vaccination | 984 | ||
| Non | 297 (30%) | 27%, 33% | |
| NSPP | 101 (10%) | 8.5%, 12% | |
| Oui | 586 (60%) | 56%, 63% | |
| Unknown | 0 | ||
| Avoir un entourage qui déconseille la vaccination | 984 | ||
| Non | 766 (78%) | 75%, 80% | |
| NSPP | 166 (17%) | 15%, 19% | |
| Oui | 52 (5.3%) | 4.0%, 6.9% | |
| Unknown | 0 | ||
| Abbreviation: CI = Confidence Interval | |||
| 1 n (%) | |||