Completo los ceo con la suma de caries obturados y perdidos
# A tibble: 0 × 9
# ℹ 9 variables: Identificador <dbl>, Edad(meses) <dbl>, Establecimiento <chr>,
# Sexo <chr>, Fecha_Cuestionario <chr>, CEO <dbl>,
# Fecha_Cuestionario_parsed <date>, year <dbl>, Edad(años) <dbl>
Análisis ceo
Cuantos niños unicos en total
n
12411
Niños por año
year
unique_ids
2018
3389
2019
3353
2020
1090
2021
2012
2022
3260
2023
3484
Niños únicos por establecimiento
Establecimiento
unique_ids
CESFAM La Floresta
1864
CESFAM Paulina Avendaño Pereda
1377
CESFAM Alcalde Leocán Portus
1131
CESFAM Lirquen
1086
CESFAM Penco
1024
CESFAM San Vicente
919
CESFAM Hualpencillo
566
CESFAM Bellavista
560
CESFAM Dr Alberto Reyes
560
CECOF Esmeralda
516
CESFAM Los Cerros
442
CECOF 8 de Mayo
303
CESFAM Talcahuano Sur
286
CECOF Libertad Gaete
239
CECOF Los Lobos - La Gloria
227
CESFAM Dichato
227
CECOSF Parque Central
189
CECOF Llafkelén
161
CECOF René Schneider
146
CECOF Leocán Portus Govinden
143
CECOF Los Forjadores
142
CECOSF Punta de Parra
121
CECOF Villa Centinela
98
CECOF España
83
CECOF Cosmito
75
CECOF Ríos de Chile
55
CECOSF Rafael
46
CECOF El Santo
41
Posta Coliumo
30
Posta Rafael
11
CECOSF CERRO ESTANQUE
4
Agrupados aquellos con menos de 200 pacientes
Establecimiento
unique_ids
CESFAM La Floresta
1864
CESFAM Paulina Avendaño Pereda
1377
OTROS (Estab. con <200 pacientes)
1334
CESFAM Alcalde Leocán Portus
1131
CESFAM Lirquen
1086
CESFAM Penco
1024
CESFAM San Vicente
919
CESFAM Hualpencillo
566
CESFAM Bellavista
560
CESFAM Dr Alberto Reyes
560
CECOF Esmeralda
516
CESFAM Los Cerros
442
CECOF 8 de Mayo
303
CESFAM Talcahuano Sur
286
CECOF Libertad Gaete
239
CECOF Los Lobos - La Gloria
227
CESFAM Dichato
227
Ceo total
Se considera solo una medición por niño por año. Si un niño tienen dos mediciones el mismo año, se considera solo la última
n
mean_ceo
sd_ceo
12536
0.9
2.2
Ceo por año
year
n
mean_ceo
sd_ceo
2018
3556
0.91
2.23
2019
3503
0.72
1.97
2020
1097
0.67
1.93
2021
2216
0.65
1.92
2022
3593
0.63
1.94
2023
3895
0.55
1.69
ceo por año y sexo
Ceo por edad
Edad(años)
n
ceod Promedio
Desv Estand
Min
Max
Q1
Q2
Q3
0
4308
0.0
0.1
0
5
0
0
0
1
4313
0.2
0.9
0
14
0
0
0
2
4400
0.7
1.8
0
16
0
0
0
3
4246
1.7
2.8
0
16
0
0
3
4
593
2.3
3.6
0
20
0
0
4
Ceo por edad y sexo
Sexo
Edad(años)
n
ceod promedio
sd
min
max
Hombre
0
2226
0.0
0.1
0
5
Hombre
1
2132
0.2
0.9
0
13
Hombre
2
2218
0.7
1.8
0
15
Hombre
3
2101
1.7
2.8
0
14
Hombre
4
311
2.3
3.6
0
20
Mujer
0
2082
0.0
0.1
0
4
Mujer
1
2181
0.2
0.9
0
14
Mujer
2
2182
0.7
1.9
0
16
Mujer
3
2145
1.7
2.8
0
16
Mujer
4
282
2.4
3.6
0
18
Ceo por edad y por año
Edad(años)
2018
2020
2019
2022
2021
2023
4
2.72
2.48
2.41
2.17
1.97
1.93
3
2.19
1.80
1.87
1.47
1.68
1.32
2
0.73
0.53
0.72
0.69
0.66
0.65
1
0.14
0.12
0.13
0.16
0.25
0.19
0
0.01
0.00
0.01
0.00
0.00
0.00
Ceo por establecimiento
Establecimiento
n
mean_ceo
sd_ceo
CECOF 8 de Mayo
303
1.2
2.7
CESFAM La Floresta
1890
1.1
2.4
CESFAM Los Cerros
448
1.1
2.6
CECOF Los Lobos - La Gloria
230
1.0
2.3
CECOF Esmeralda
519
1.0
2.5
OTROS (Estab. con <200 pacientes)
1345
1.0
2.4
CESFAM Dr Alberto Reyes
564
1.0
2.2
CESFAM Hualpencillo
566
0.9
2.4
CESFAM Lirquen
1097
0.9
2.2
CESFAM Dichato
228
0.8
1.9
CECOF Libertad Gaete
243
0.8
2.0
CESFAM Bellavista
571
0.8
2.0
CESFAM Penco
1029
0.7
2.0
CESFAM Talcahuano Sur
286
0.7
2.1
CESFAM Paulina Avendaño Pereda
1394
0.6
1.8
CESFAM San Vicente
935
0.6
1.6
CESFAM Alcalde Leocán Portus
1143
0.5
1.5
=======================
CEO by Establecimiento
Establecimiento
n_2018
n_2019
n_2020
n_2021
n_2022
n_2023
mean_ceo_2018
mean_ceo_2019
mean_ceo_2020
mean_ceo_2021
mean_ceo_2022
mean_ceo_2023
CECOF 8 de Mayo
88
61
16
30
90
111
1.2
1.2
1.6
3.2
0.4
0.5
CECOF Cosmito
5
19
18
13
32
8
3.8
0.6
1.1
0.8
0.8
0.4
CECOF El Santo
41
NA
NA
NA
NA
NA
0.8
NA
NA
NA
NA
NA
CECOF Esmeralda
155
103
41
142
130
129
0.8
0.6
0.9
1.4
1.1
0.3
CECOF España
21
64
NA
NA
NA
5
0.9
0.5
NA
NA
NA
1.0
CECOF Leocán Portus Govinden
41
96
38
21
1
NA
0.1
0.6
0.6
0.3
0.0
NA
CECOF Libertad Gaete
NA
NA
NA
91
141
131
NA
NA
NA
0.3
0.7
0.9
CECOF Llafkelén
73
70
30
26
23
NA
1.3
1.3
0.9
0.5
0.7
NA
CECOF Los Forjadores
66
81
22
NA
24
NA
0.8
0.8
1.0
NA
1.4
NA
CECOF Los Lobos - La Gloria
NA
NA
NA
8
170
136
NA
NA
NA
1.0
0.9
0.9
CECOF René Schneider
62
44
22
24
27
28
1.2
1.1
1.1
1.8
0.6
0.6
CECOF Ríos de Chile
19
21
4
2
9
10
1.2
0.3
0.0
1.0
0.0
0.3
CECOF Villa Centinela
NA
NA
NA
NA
29
88
NA
NA
NA
NA
1.8
1.2
CECOSF CERRO ESTANQUE
NA
NA
1
NA
2
1
NA
NA
0.0
NA
0.0
8.0
CECOSF Parque Central
51
63
19
50
39
43
0.5
0.5
1.1
0.4
0.6
0.4
CECOSF Punta de Parra
49
23
13
30
26
28
1.3
1.0
0.5
0.4
1.0
0.4
CECOSF Rafael
NA
NA
NA
NA
13
38
NA
NA
NA
NA
1.0
1.6
CESFAM Alcalde Leocán Portus
231
277
68
244
503
474
0.2
0.5
0.5
0.4
0.3
0.3
CESFAM Bellavista
182
157
78
103
139
147
0.7
0.6
0.9
0.5
0.4
0.5
CESFAM Dichato
48
104
34
3
40
58
1.2
0.7
0.6
0.0
0.3
0.7
CESFAM Dr Alberto Reyes
245
234
36
9
18
88
1.3
0.8
0.2
0.1
1.2
0.5
CESFAM Hualpencillo
193
181
44
55
72
95
1.1
1.0
1.0
0.8
0.6
0.7
CESFAM La Floresta
689
705
290
384
474
391
1.0
0.8
0.7
0.9
0.8
0.7
CESFAM Lirquen
262
288
111
297
339
331
1.2
0.7
0.5
0.6
0.5
0.5
CESFAM Los Cerros
NA
NA
NA
4
268
365
NA
NA
NA
3.0
1.0
0.6
CESFAM Paulina Avendaño Pereda
484
308
89
62
306
489
1.0
0.6
0.3
0.5
0.4
0.3
CESFAM Penco
439
472
91
41
159
136
0.6
0.6
0.5
0.7
0.6
0.9
CESFAM San Vicente
NA
NA
NA
560
480
533
NA
NA
NA
0.4
0.6
0.5
CESFAM Talcahuano Sur
109
109
31
14
25
27
0.6
0.8
0.7
0.0
1.1
0.3
Posta Coliumo
3
23
1
3
3
5
0.0
0.6
3.0
4.0
0.0
0.0
Posta Rafael
NA
NA
NA
NA
11
NA
NA
NA
NA
NA
0.1
NA
ceo por año y por edad
Promedio CEO
Edad(años)
2018
2019
2020
2021
2022
2023
0
0.01
0.01
0.00
0.00
0.00
0.00
1
0.14
0.13
0.12
0.25
0.16
0.19
2
0.73
0.72
0.53
0.66
0.69
0.65
3
2.19
1.87
1.80
1.68
1.47
1.32
4
2.72
2.41
2.48
1.97
2.17
1.93
Desviación Estándar CEO
Edad(años)
2018
2019
2020
2021
2022
2023
0
0.17
0.16
0.00
0.00
0.07
0.09
1
0.82
0.90
0.61
1.15
0.75
0.90
2
1.81
1.78
1.67
1.79
1.97
1.74
3
3.11
2.85
2.70
2.91
2.75
2.41
4
3.56
3.50
4.54
3.12
3.83
3.38
Source Code
---title: "CEO"date-modified: last-modifiedlanguage: title-block-published: "CREATED" title-block-modified: "UPDATED"format: html: toc: truetoc-expand: 3code-fold: truecode-tools: trueeditor: visualexecute: echo: false cache: true warning: false message: false---```{r}pacman::p_load(tidyverse, gtsummary, kableExtra, # for the table title lubridate, viridis, scales, broom, visdat, here)``````{r}theme_set(theme_minimal())``````{r}# ceo <- read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vS9TrID6K_vGkUdTMhtP-mXKNSPB9WGes7S_UKdWROpk_0EaiQcHYgq7w_Xgtrjaw/pub?gid=1956276955&single=true&output=csv")``````{r}# write_csv(ceo, here("data", "ceo.csv"))``````{r}# for offline useceo <-read_csv(here("data", "ceo.csv"))``````{r}# glimpse(ceo)```Por año```{r}ceo$Fecha_Cuestionario_parsed <-mdy(ceo$Fecha_Cuestionario) # Convertir formato si es día/mes/añoceo$year <-year(ceo$Fecha_Cuestionario_parsed)``````{r}# ceo_unique <- ceo %>%# group_by(year, ID) %>%# filter(Fecha_Cuestionario_parsed == max(Fecha_Cuestionario)) %>%# ungroup()```Completo los ceo con la suma de caries obturados y perdidos```{r}ceo <- ceo |>mutate(CEO =coalesce(CEO, Caries + Obturado + Perdidos))``````{r}ceo <- ceo |>select(-c(Caries, Obturado, Perdidos, COP))``````{r}# Convertir Edad(meses) en Edad(años)ceo <- ceo |>mutate(`Edad(años)`=floor(`Edad(meses)`/12)) # Convertir meses a años, agrupando en enteros``````{r}# Identificar filas donde la fecha no ha sido parseada correctamenteceo |>filter(is.na(Fecha_Cuestionario_parsed)) ``````{r}# remover fecha cuestionario originalceo <- ceo |>select(-Fecha_Cuestionario) |>rename(Fecha_Cuestionario = Fecha_Cuestionario_parsed)``````{r}# remuevo 546 que no tienen ceoceo <- ceo |>filter(!is.na(CEO))``````{r}visdat::vis_dat(ceo)```# Análisis ceo## Cuantos niños unicos en total```{r}ceo |>distinct(Identificador) |>count() |> knitr::kable()```## Niños por año```{r} ceo |>group_by(year) |>summarise(unique_ids =n_distinct(Identificador)) |># Contar IDs únicos por año knitr::kable()```## Niños únicos por establecimiento```{r} ceo |>group_by(Establecimiento) |>summarise(unique_ids =n_distinct(Identificador)) |># Contar IDs únicos por añoarrange(desc(unique_ids)) |> knitr::kable()```### Agrupados aquellos con menos de 200 pacientes```{r} ceo |>mutate(Establecimiento =fct_lump_min(Establecimiento, min =270, other_level ="OTROS (Estab. con <200 pacientes)")) |>group_by(Establecimiento) |>summarise(unique_ids =n_distinct(Identificador)) |># Contar IDs únicos por añoarrange(desc(unique_ids)) |> knitr::kable()```## Ceo totalSe considera solo una medición por niño por año. Si un niño tienen dos mediciones el mismo año, se considera solo la última```{r}ceo |>group_by(Identificador) |>filter(Fecha_Cuestionario ==max(Fecha_Cuestionario)) |># Dejar el último registro por IDungroup() |># Desagrupar para el siguiente cálculosummarise(n =n(), mean_ceo =mean(CEO, na.rm =TRUE), # Promedio del CEOsd_ceo =sd(CEO, na.rm =TRUE) # Desviación estándar del CEO ) |>mutate_all(~round(., 1)) |># Redondear todas las columnas a un decimal knitr::kable()```## Ceo por año```{r}ceo |>ggplot(aes(x =as.factor(year), y = CEO)) +stat_summary(fun = mean, geom ="bar", fill ="skyblue", color ="grey 40", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2, color ="grey 40") +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(after_stat(y), 2)), vjust =5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Año con IC del 95%", x ="Año", y ="Promedio del CEO") +theme_minimal()``````{r}ceo |>group_by(year) |># filter(Fecha_Cuestionario == max(Fecha_Cuestionario)) |> # Dejar el último registro por ID# ungroup() |> # Desagrupar para el siguiente cálculosummarise(n =n(), mean_ceo =mean(CEO, na.rm =TRUE), # Promedio del CEOsd_ceo =sd(CEO, na.rm =TRUE) # Desviación estándar del CEO ) |>mutate_all(~round(., 2)) |># Redondear todas las columnas a un decimal knitr::kable()```### ceo por año y sexo```{r}ceo |>ggplot(aes(x =as.factor(`year`), y = CEO)) +stat_summary(fun = mean, geom ="bar", fill ="skyblue", color ="black", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2) +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(..y.., 1)), vjust =5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Año con IC del 95%", x ="Año", y ="Promedio del CEO") +theme_minimal() +facet_grid(Sexo ~ .)```## Ceo por edad```{r}# Graficar la media del CEO por edad con el intervalo de confianza del 95%ceo |>ggplot(aes(x =as.factor(`Edad(años)`), y = CEO)) +stat_summary(fun = mean, geom ="bar", fill ="skyblue", color ="grey 40", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2, color ="grey 40") +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(after_stat(y), 2)), vjust =1.5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Edad(años) con IC del 95%", x ="Edad(años)", y ="Promedio del CEO") +theme_minimal()``````{r}ceo |>group_by(`Edad(años)`) |>summarise(n =n(), "ceod Promedio"=mean(CEO, na.rm =TRUE), # Promedio del CEO"Desv Estand"=sd(CEO, na.rm =TRUE), # Desviación estándar del CEO"Min"=min(CEO, na.rm =TRUE), # Mínimo valor de CEO"Max"=max(CEO, na.rm =TRUE), # Máximo valor de CEOQ1 =quantile(CEO, 0.25, na.rm =TRUE), # Primer cuartil (Q1)Q2 =quantile(CEO, 0.50, na.rm =TRUE), # Segundo cuartil (Q2/Mediana)Q3 =quantile(CEO, 0.75, na.rm =TRUE) # Tercer cuartil (Q3) ) |>mutate_all(~round(., 1)) |># Redondear todas las columnas a un decimal knitr::kable()```### Ceo por edad y sexo```{r}# ceo por edad y sexoceo |>ggplot(aes(x = Sexo, y = CEO, fill = Sexo)) +stat_summary(fun = mean, geom ="bar", color ="black", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2) +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(after_stat(y), 2)), vjust =-0.5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Sexo y Edad con IC del 95%", x ="Sexo", y ="Promedio del CEO") +theme_minimal() +facet_grid(. ~as.factor(`Edad(años)`) )``````{r}ceo |>group_by(Sexo, `Edad(años)`) |>summarise( n =n(), "ceod promedio"=mean(CEO), sd =sd(CEO), min =min(CEO), max =max(CEO)) |>mutate_all(~round(., 1)) |># Redondear todas las columnas a un decimal knitr::kable()``````{r}# ceo |> # ggplot(aes(x = as.factor(`Edad(años)`), y = CEO, fill = Sexo)) +# stat_summary(fun = mean, geom = "bar", color = "black", width = 0.7) + # Gráfico de barras para la media# stat_summary(fun.data = mean_cl_normal, geom = "errorbar", width = 0.2) + # Barras de error para el IC del 95%# stat_summary(fun = mean, geom = "text", aes(label = round(..y.., 1)), vjust = -0.5) + # Etiquetas con el valor de la media redondeado# labs(title = "Promedio del CEO por Edad y Sexo con IC del 95%", # x = "Edad (años)", # y = "Promedio del CEO") +# theme_minimal() + # facet_grid(. ~ Sexo)```## Ceo por edad y por año```{r}# ceo |> # group_by(`Edad(años)`, year) |> # summarise(# n = n(), # mean_ceo = mean(CEO, na.rm = TRUE), # Promedio del CEO# sd_ceo = sd(CEO, na.rm = TRUE) # Desviación estándar del CEO# ) |> # ungroup() |> # arrange(desc(mean_ceo)) |> # mutate(across(where(is.numeric), ~ round(., 1))) |> # knitr::kable()``````{r}ceo |>group_by(`Edad(años)`, year) |>summarise(mean_ceo =mean(CEO, na.rm =TRUE) # Promedio del CEO ) |>ungroup() |>arrange(desc(mean_ceo)) |>mutate(across(where(is.numeric), ~round(., 2))) |>pivot_wider(names_from = year, values_from = mean_ceo) |> knitr::kable()```## ```{r}# Graficar la media del CEO por Sexo con el intervalo de confianza del 95%ceo |>ggplot(aes(x = Sexo, y = CEO, fill = Sexo)) +stat_summary(fun = mean, geom ="bar", color ="black", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2) +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(after_stat(y), 2)), vjust =5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Sexo con IC del 95%", x ="Sexo", y ="Promedio del CEO") +theme_minimal() ```## Ceo por establecimiento```{r}# Graficar la media del CEO por Establecimiento con el intervalo de confianza del 95%ceo |>ggplot(aes(x =fct_reorder(Establecimiento, CEO, .fun = mean, .desc =TRUE), y = CEO)) +stat_summary(fun = mean, geom ="bar", fill ="skyblue", color ="black", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2) +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(..y.., 1)), vjust =-0.5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Establecimiento con IC del 95%", x ="Establecimiento", y ="Promedio del CEO") +theme_minimal() +coord_flip()``````{r}ceo |>mutate(Establecimiento =fct_lump_min(Establecimiento, min =270, other_level ="OTROS (Estab. con <200 pacientes)")) |>group_by(Establecimiento, Identificador) |>filter(Fecha_Cuestionario ==max(Fecha_Cuestionario)) |># Dejar el último registro por ID en cada establecimientoungroup() |># Desagrupar para calcular estadísticas por establecimientogroup_by(Establecimiento) |>summarise(n =n(), mean_ceo =mean(CEO, na.rm =TRUE), # Promedio del CEOsd_ceo =sd(CEO, na.rm =TRUE) # Desviación estándar del CEO ) |>arrange(desc(mean_ceo)) |>mutate(across(where(is.numeric), ~round(., 1))) |> knitr::kable()``````{r}# Graficar la media del CEO por Establecimiento con el intervalo de confianza del 95%ceo |>mutate(Establecimiento =fct_lump_min(Establecimiento, min =270, other_level ="OTROS (Estab. con <200 pacientes)")) |>ggplot(aes(x =fct_reorder(Establecimiento, CEO, .fun = mean), y = CEO)) +stat_summary(fun = mean, geom ="bar", fill ="skyblue", color ="grey 30", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2, color ="grey 30") +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(after_stat(y), 2)), hjust =5.2) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Establecimiento con IC del 95%", x ="Establecimiento", y ="Promedio del CEO", caption ="Establecimientos con <200 agrupados en OTROS") +theme_minimal() +coord_flip()``````{r}ceo |>mutate(Establecimiento =fct_lump_min(Establecimiento, min =500, other_level ="OTROS (Estab. con <500 pacientes)")) |>group_by(Establecimiento, Identificador, year) |>filter(Fecha_Cuestionario ==max(Fecha_Cuestionario)) |># Dejar el último registro por ID en cada establecimientoungroup() |># Desagrupar para calcular estadísticas por establecimientogroup_by(Establecimiento, year) |>summarise(n =n(), mean_ceo =mean(CEO, na.rm =TRUE), # Promedio del CEOsd_ceo =sd(CEO, na.rm =TRUE) # Desviación estándar del CEO ) |>arrange(desc(mean_ceo)) |>mutate(across(where(is.numeric), ~round(., 1))) |># Redondear las columnas numéricas# Graficar con geom_line y geom_point, más barras de errorggplot(aes(x = year, y = mean_ceo, group = Establecimiento)) +geom_line(size =1) +# Añadir líneasgeom_point(size =3) +# Añadir puntosgeom_errorbar(aes(ymin = mean_ceo - sd_ceo, ymax = mean_ceo + sd_ceo), width =0.2) +# Barras de errorlabs(title ="Promedio del CEO por Establecimiento y Año", x ="Año", y ="Promedio del CEO") +scale_x_continuous(labels =label_number(accuracy =1, suffix ="'")) +# Mostrar solo los dos últimos dígitos del añotheme_minimal() +theme(legend.position ="bottom") +facet_grid(. ~ Establecimiento) # Facetas por Establecimiento```=======================# # CEO by Establecimiento```{r}ceo |>group_by(Establecimiento, year) |>summarise(n =n(), mean_ceo =mean(CEO)) |>mutate_all( ~round(., 1)) |># Redondear todas las columnas a un decimalpivot_wider(names_from = year, values_from =c(n, mean_ceo)) |> knitr::kable()```# ceo por año y por edad```{r}# Graficar la media del CEO por edad y año con el intervalo de confianza del 95%ceo |>ggplot(aes(x = year, y = CEO, fill =`Edad(años)`)) +stat_summary(fun = mean, geom ="bar", fill ="grey 50", color ="grey 50", width =0.7) +# Gráfico de barras para la mediastat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2) +# Barras de error para el IC del 95%stat_summary(fun = mean, geom ="text", aes(label =round(after_stat(y), 2)), vjust =5) +# Etiquetas con el valor de la media redondeadolabs(title ="Promedio del CEO por Edad y Año con IC del 95%", x ="Año", y ="ceo Promedio") +theme_minimal() ``````{r}ceo |>ggplot(aes(x =as.factor(year), y = CEO, fill =as.factor(`Edad(años)`))) +stat_summary(fun = mean, geom ="point", shape =21, size =3, color ="black") +# Plot mean as a pointstat_summary(fun.data = mean_cl_normal, geom ="errorbar", width =0.2) +# Error bars for 95% CIlabs(title ="Distribución del CEO por Edad y Año",subtitle ="(Media con IC del 95%)", x ="Año", y ="CEO") +theme_minimal() +theme(axis.text.x =element_text(angle =45, hjust =1)) +scale_fill_viridis_d(option ="D", name ="Edad (años)") +facet_grid(. ~`Edad(años)`) +theme(legend.position ="top")``````{r}ggsave(filename =here("figures", "ceo_por_edad_anno.png"),dpi =300, # High resolution for printwidth =15, # Width in centimetersheight =10, # Height in centimetersunits ="cm"# Units in centimeters for a large poster)``````{r}ceo |>select(CEO, year, `Edad(años)`) |>group_by(`Edad(años)`, year) |>summarise(meanCEO =mean(CEO), .groups ="drop") |>mutate(meanCEO =round(meanCEO, 2)) |>pivot_wider(names_from = year, values_from = meanCEO) |> knitr::kable(caption ="Promedio CEO") |>kable_styling(full_width =FALSE)``````{r}ceo |>select(CEO, year, `Edad(años)`) |>group_by(`Edad(años)`, year) |>summarise(sdCEO =sd(CEO), .groups ="drop") |>mutate(sdCEO =round(sdCEO, 2)) |>pivot_wider(names_from = year, values_from = sdCEO) |> knitr::kable(caption ="Desviación Estándar CEO") |>kable_styling(full_width =FALSE)```