---
title: "ERFI - Premiers traitements"
echo: false
eval: false
format:
html:
code-tools:
source: true
toggle: false
caption: none
# output:
# flexdashboard::flex_dashboard:
# theme:
# bg: "#F8F8FF"
# fg: "#000000"
# primary: "#8FBC8F"
# base_font:
# google: Prompt
# code_font:
# google: JetBrains Mono
# orientation: columns
# vertical_layout: fill
# runtime: shiny
---
Le tableau de bord créé avec Flexdashboard est accessible [ici](https://solenne-roux.shinyapps.io/exemple_flexdashboard/).
Vous retrouverez le code qui a permis sa réalisation en cliquant sur le bouton *</>*... et en effaçant ces quelques lignes ;-)
Il faudra également dé-commenter la partie laissée en commentaire dans le YAML (en-tête du document) ; ainsi que supprimer l'instruction {.hidden} permettant de cacher les parties concernées.
A vous de jouer !!
```{r setup, include=FALSE}
library(flexdashboard)
# Install thematic and un-comment for themed static plots (i.e., ggplot2)
# thematic::thematic_rmd()
```
{data-width=150 .tabset}
-----------------------------------------------------------------------
Indicateurs sociodémographiques{.hidden}
=======================================================================
Column {data-width="50%"}
-----------------------------------------------------------------------
### Sexe
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF$MA_SEXE <- as.factor(DF$MA_SEXE)
DF2 <- subset(DF, select = MA_SEXE)
DF2<-na.omit(DF2)
tabsex<-table(DF2$MA_SEXE)
pie(tabsex, main = "Répartition selon le sexe", col = c("aquamarine", "darkgreen"), labels = c("Hommes", "Femmes"))
```
### Age
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF3 <- subset(DF, select = MA_AGEM_rec)
DF3 <- na.omit(DF3)
ggplot(DF3, aes(x=MA_AGEM_rec)) +
geom_density(fill="aquamarine", color="#e9ecef", alpha=0.8) +
ggtitle("Répartition par âge") +
theme_minimal()
```
Column {data-width="50%"}
-----------------------------------------------------------------------
### Niveau de diplôme
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF4 <- subset(DF, select = MC_DIPLOME)
DF4 <- na.omit(DF4)
DF4 <- DF4 |>
mutate(
MC_DIPLOME = factor(MC_DIPLOME, labels = c("Aucun diplôme", "CEP", "Brevet", "CAP/BEP",
"BAC tech ou pro", "BAC Général", "BAC +2", ">BAC+2"))
)
tabdipl<-table(DF4$MC_DIPLOME)
percdipl<-prop.table(tabdipl)
data<-data.frame(tabdipl, percdipl)
data$ymax <- cumsum(data$Freq.1)
data$ymin <- c(0, head(data$ymax, n=-1))
data$labelPosition <- (data$ymax + data$ymin) / 2
# Compute a good label
data$label <- paste0(data$Var1, "\n value: ", data$Freq)
# Make the plot
ggplot(data, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=2, fill=Var1)) +
geom_rect() +
geom_label( x=3, aes(y=labelPosition, label=label), size=3) +
scale_fill_brewer(palette=4) +
coord_polar(theta="y") +
xlim(c(2, 4)) +
theme_void() +
theme(legend.position = "none")
```
### Type de ménage
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF5 <- subset(DF, select = TYPFAM3_rec)
DF5 <- na.omit(DF5)
DF5 <- DF5 |>
mutate(
TYPFAM3_rec = factor(TYPFAM3_rec, labels = c("Seul sans enfant ", "Seul avec enfant(s) ", "En couple sans enfant ", "En couple avec enfant(s) ","Ménage de plusieurs personnes"))
)
tabmen<-table(DF5$TYPFAM3_rec)
percmen<-prop.table(tabmen)
data2<-data.frame(tabmen, percmen)
data2$ymax <- cumsum(data2$Freq.1)
data2$ymin <- c(0, head(data2$ymax, n=-1))
data2$labelPosition <- (data2$ymax + data2$ymin) / 2
# Compute a good label
data2$label <- paste0(data2$Var1, "\n value: ", data2$Freq)
# Make the plot
ggplot(data2, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=2, fill=Var1)) +
geom_rect() +
geom_label( x=3, aes(y=labelPosition, label=label), size=2.5) +
scale_fill_brewer(palette=3) +
coord_polar(theta="y") +
xlim(c(-2, 4)) +
theme_void() +
theme(legend.position = "none")
```
Composition de l'âge selon le sexe du répondant{.hidden}
=======================================================================
Column {data-width="40%"}
-----------------------------------------------------------------------
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF$MA_AGEM_rec <- as.numeric(DF$MA_AGEM_rec)
DF$MA_SEXE <- as.factor(DF$MA_SEXE)
DF2 <- subset(DF, select = c(MA_AGEM_rec, MA_SEXE))
DF2 <- na.omit(DF2)
levels(DF2$MA_SEXE) <- c("Hommes", "Femmes")
selectInput(
inputId = "gender",
label = "Sélectionner le genre :",
choices = c("Tous" = "Tous", "Hommes" = "Hommes", "Femmes" = "Femmes"),
selected = "Tous"
)
```
Column {data-width="60%"}
-----------------------------------------------------------------------
### Age selon le sexe
```{r}
renderPlot({
filtered_data <- DF2
if (input$gender != "Tous") {
filtered_data <- DF2 %>% filter(MA_SEXE == input$gender)
}
if (input$gender == "Tous") {
p <- ggplot(filtered_data, aes(x = MA_AGEM_rec, fill = MA_SEXE)) +
geom_histogram(bins = 30, position = "dodge") +
facet_wrap(~ MA_SEXE, ncol = 2) +
labs(
title = "Histogramme de l'âge (Tous)",
x = "Répartition par âge",
y = "Fréquence"
) +
theme_minimal() +
scale_fill_manual(values = c("Hommes" = "purple", "Femmes" = "grey"))
} else {
gender_color <- if (input$gender == "Hommes") "purple" else "grey"
p <- ggplot(filtered_data, aes(x = MA_AGEM_rec)) +
geom_histogram(bins = 30, fill = gender_color, color = "black") +
labs(
title = paste("Histogramme de l'âge (", input$gender, ")", sep = ""),
x = "Répartition par âge",
y = "Fréquence"
) +
theme_minimal() +
theme(legend.position = "none")
}
print(p)
})
```
Composition du ménage selon le sexe du répondant{.hidden}
=======================================================================
Column
-----------------------------------------------------------------------
### Type de ménage selon le sexe
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, DT, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF$TYPFAM3_rec <- as.factor(DF$TYPFAM3_rec)
DF$MA_SEXE <- as.factor(DF$MA_SEXE)
DF3 <- subset(DF, select = c(TYPFAM3_rec, MA_SEXE))
DF3 <- na.omit(DF3)
levels(DF3$MA_SEXE) <- c("Hommes", "Femmes")
DF3 <- DF3 %>%
mutate(
TYPFAM3_rec = factor(TYPFAM3_rec, labels = c("Seul sans enfant", "Seul avec enfant(s)", "En couple sans enfant", "En couple avec enfant(s)", "Ménage de plusieurs personnes")))
renderDataTable({
datatable(DF3, filter = 'top')
})
```
Satisfaction de la répartition des tâches ménagères selon le sexe{.hidden}
=======================================================================
Column {data-width="40%"}
-----------------------------------------------------------------------
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF$OA_SATREP <- as.numeric(DF$OA_SATREP)
DF$MA_SEXE <- as.factor(DF$MA_SEXE)
DF4 <- subset(DF, select = c(OA_SATREP, MA_SEXE))
DF4 <- na.omit(DF4)
levels(DF4$MA_SEXE) <- c("Hommes", "Femmes")
selectInput(
inputId = "gender",
label = "Sélectionner le genre :",
choices = c("Tous" = "Tous", "Hommes" = "Hommes", "Femmes" = "Femmes"),
selected = "Tous"
)
```
Column {data-width="60%"}
-----------------------------------------------------------------------
### Satisfaction de la répartition des tâches ménagères selon le sexe
```{r}
renderPlot({
filtered_data <- DF4
if (input$gender != "Tous") {
filtered_data <- DF4 %>% filter(MA_SEXE == input$gender)
}
if (input$gender == "Tous") {
p <- ggplot(filtered_data, aes(x = OA_SATREP, fill = MA_SEXE)) +
geom_histogram(bins = 30, position = "dodge") +
facet_wrap(~ MA_SEXE, ncol = 2) +
labs(
title = "Histogramme de la satisfaction (Tous)",
x = "Satisfaction de la répartition des tâches ménagères",
y = "Fréquence"
) +
theme_minimal() +
scale_fill_manual(values = c("Hommes" = "aquamarine", "Femmes" = "steelblue"))
} else {
gender_color <- if (input$gender == "Hommes") "aquamarine" else "steelblue"
p <- ggplot(filtered_data, aes(x = OA_SATREP)) +
geom_histogram(bins = 30, fill = gender_color, color = "black") +
labs(
title = paste("Histogramme de la satisfaction (", input$gender, ")", sep = ""),
x = "Satisfaction de la répartition des tâches ménagères",
y = "Fréquence"
) +
theme_minimal() +
theme(legend.position = "none")
}
print(p)
})
```
Satisfaction de la répartition des tâches ménagères{.hidden}
=======================================================================
Column {data-width="40%"}
-----------------------------------------------------------------------
```{r}
if (!require("pacman")) install.packages("pacman")
pacman::p_load(bslib, dplyr, ggplot2, here, knitr, readxl, shiny, shinylive, shinythemes, shinydashboard)
DF_path <- here("data", "DF_ERFI_anonym.xlsx")
DF <- read_excel(DF_path)
DF$OA_SATREP <- as.numeric(DF$OA_SATREP)
DF$MA_SEXE <- as.factor(DF$MA_SEXE)
DF$TYPFAM3_rec <- as.factor(DF$TYPFAM3_rec)
DF$MA_AGEM_rec <- as.numeric(DF$MA_AGEM_rec)
DF5 <- subset(DF, select = c(OA_SATREP, MA_SEXE, TYPFAM3_rec, MA_AGEM_rec))
levels(DF5$MA_SEXE) <- c("Hommes", "Femmes")
DF5 <- DF5 %>%
mutate(
TYPFAM3_rec = factor(TYPFAM3_rec,
labels = c("Seul sans enfant",
"Seul avec enfant(s)",
"En couple sans enfant",
"En couple avec enfant(s)",
"Ménage de plusieurs personnes")))
DF5 <- na.omit(DF5)
selectInput(
inputId = "Model",
label = "Sélectionner le modèle de régression :",
choices = c("Modèle contrôles" = "Modèle contrôles", "Modèle complet" = "Modèle complet"),
selected = "Modèle contrôles"
)
```
Column {data-width="60%"}
-----------------------------------------------------------------------
### Satisfaction de la répartition des tâches ménagères selon le sexe
```{r}
renderPrint({
filtered_data <- DF5
if (input$Model == "Modèle contrôles") {
modelC<-lm(DF5$OA_SATREP ~ DF5$MA_AGEM_rec + DF5$MA_SEXE)
p <- summary(modelC)
print(p)
}
else {
modelComp<-lm(DF5$OA_SATREP ~ DF5$MA_AGEM_rec + DF5$MA_SEXE + DF5$TYPFAM3_rec)
p2 <- summary(modelComp)
print(p2)
}
})
```
Bilan des données{.hidden}
=======================================================================
## En guise de conclusion
Nous observons que les femmes sont moins satisfaites que les hommes de la répartition des tâches ménagères. Cette insatisfaction est également plus élevée pour les couples avec enfants par rapport aux couples sans enfants.
