Mostrar codigo
#Recuerda que todos los chunks están en eval = FALSE; para activarlos debes cambiar a eval = TRUE.
library(readxl)
cron <- read_xlsx("CRON_fin.xlsx")#Recuerda que todos los chunks están en eval = FALSE; para activarlos debes cambiar a eval = TRUE.
library(readxl)
cron <- read_xlsx("CRON_fin.xlsx")dim(cron)
str(cron)
head(cron)
tail(cron)table_w4q13 <- table(CRON_fin$w4q13)
print(table_w4q13)
table_w4q13_pct <- prop.table(table_w4q13) * 100
print(round(table_w4q13_pct, 2))Después de crear la tabla con las funciones, se observa que La mayoría de los encuestados considera la protección de los derechos humanos como una prioridad alta: 55.87% indicó que es una top priority (valor 5). 34.71% considera que es una important priority (valor 4), el 90% de los encuestados. Un 7 % consideran que es una prioridad media, mientars que menos de un 2% lo considero una pequeña o nada prioridad. Es decir,la protección de los derechos humanos es considerada una prioridad importante o máxima para la gran mayoría de los encuestados.
freq_cntry <- table(cron$cntry)
print(freq_cntry)
AT BE CZ FI FR GB IS IT PT SE SI
647 573 284 739 724 487 525 243 396 845 569
El país con mas observaciones es Suecia con 845. Italia el que menos con solo 243. La mayoría de los países tienen una representación moderada, con valores entre 500 y 750 observaciones. Aunque algunos países tienen más datos que otros, la variación no parece extremadamente desigual, con la excepción de Italia y Chequia, que tienen menos datos. Sería importante investigar si esta diferencia se debe al diseño de la encuesta o a problemas en la recolección de datos.
data_filtered <- cron %>% filter(cntry %in% c("PT", "FR", "SE"))
frequencies <- data_filtered %>% count(cntry, w4q3)
print(frequencies)# A tibble: 18 × 3
cntry w4q3 n
<chr> <dbl> <int>
1 FR 1 355
2 FR 2 140
3 FR 3 147
4 FR 4 51
5 FR 5 16
6 FR 9 15
7 PT 1 96
8 PT 2 89
9 PT 3 139
10 PT 4 49
11 PT 5 17
12 PT 9 6
13 SE 1 312
14 SE 2 309
15 SE 3 159
16 SE 4 48
17 SE 5 9
18 SE 9 8
En Francia predominan las categorías 1 y 2, refleja que enfatizar los valores religiosos tiene una baja relevancia en Francia. Solo un pequeño porcentaje (16 respuestas) considera la religión una prioridad máxima, indicando una sociedad orientada hacia valores no religiosos. Los valores religiosos tienen algo más de relevancia en Portugal que en Francia, aunque la mayoría sigue considerando que no son prioritarios. La frecuencia con más respuestas es la 3, con una prioridad media de la misma. En Suecia, confirma su reputación como una de las sociedades más secularizadas. La ausencia de categorías 4 y 5 (57 respuestas combinadas, menos del 10%) indica que la religión tiene una importancia mínima en su ideal de sociedad.
w4q15_data <- cron %>% filter(!is.na(w4q15) & w4q15 != 9)
total_responses <- nrow(w4q15_data)
responses_5 <- w4q15_data %>% filter(w4q15 == 5) %>% nrow()
percentage_5 <- (responses_5 / total_responses) * 100
percentage_5[1] 22.02281
El porcentaje de población es del 22.02 %
w4q1_frequencies <- cron %>%
filter(!is.na(w4q1) & w4q1 != 9) %>%
count(w4q1, sort = TRUE)
most_frequent <- w4q1_frequencies %>% slice(1)
most_frequent# A tibble: 1 × 2
w4q1 n
<dbl> <int>
1 4 3067
El valor más frecuente es 4, con 3067 observaciones
eduyrs_summary <- cron %>%
filter(!is.na(eduyrs)) %>%
group_by(cntry) %>%
summarise(
mean_eduyrs = mean(eduyrs, na.rm = TRUE),
median_eduyrs = median(eduyrs, na.rm = TRUE)
)
eduyrs_summary# A tibble: 11 × 3
cntry mean_eduyrs median_eduyrs
<chr> <dbl> <dbl>
1 AT 15.8 14
2 BE 15.3 15
3 CZ 17.1 13
4 FI 15.8 16
5 FR 15.1 14
6 GB 15.7 16
7 IS 16.9 17
8 IT 15.5 14
9 PT 13.7 12
10 SE 16.4 14
11 SI 14.5 14
En la República Checa, aunque la media de educación es la más alta, la mediana es más baja (13 años), lo que sugiere que hay valores extremos elevados que elevan la media.Islandia presenta una mediana alta de 17 años, indicando que la mayoría de la población tiene un nivel educativo similar y elevado, con menos variabilidad en los datos. Portugal tiene tanto la media como la mediana más bajas, lo que refleja niveles educativos más bajos en promedio en comparación con otros países europeos.
cron_2 <- cron %>%
filter(!(eduyrs %in% c(77, 88, 99)))
head(cron_2)# A tibble: 6 × 24
cntry gndr agea eduyrs eisced hincfel hinctnta netusoft region w4q1 w4q2
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <dbl> <dbl>
1 AT 1 73 11 3 1 10 5 AT32 4 4
2 AT 2 41 13 6 2 77 5 AT22 4 4
3 AT 1 35 14 5 1 3 5 AT22 4 5
4 AT 1 55 12 3 1 77 4 AT34 3 3
5 AT 2 65 12 2 1 7 5 AT12 4 5
6 AT 2 27 21 6 2 77 5 AT31 4 4
# ℹ 13 more variables: w4q3 <dbl>, w4q4 <dbl>, w4q5 <dbl>, w4q6 <dbl>,
# w4q7 <dbl>, w4q8 <dbl>, w4q9 <dbl>, w4q10 <dbl>, w4q11 <dbl>, w4q12 <dbl>,
# w4q13 <dbl>, w4q14 <dbl>, w4q15 <dbl>
ggplot(cron_2, aes(x = cntry, y = eduyrs)) +
geom_boxplot() labs(
title = "Distribución de años de educación por país",
x = "País",
y = "Años de educación"
) $x
[1] "País"
$y
[1] "Años de educación"
$title
[1] "Distribución de años de educación por país"
attr(,"class")
[1] "labels"
theme_minimal()List of 136
$ line :List of 6
..$ colour : chr "black"
..$ linewidth : num 0.5
..$ linetype : num 1
..$ lineend : chr "butt"
..$ arrow : logi FALSE
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_line" "element"
$ rect :List of 5
..$ fill : chr "white"
..$ colour : chr "black"
..$ linewidth : num 0.5
..$ linetype : num 1
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_rect" "element"
$ text :List of 11
..$ family : chr ""
..$ face : chr "plain"
..$ colour : chr "black"
..$ size : num 11
..$ hjust : num 0.5
..$ vjust : num 0.5
..$ angle : num 0
..$ lineheight : num 0.9
..$ margin : 'margin' num [1:4] 0points 0points 0points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : logi FALSE
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ title : NULL
$ aspect.ratio : NULL
$ axis.title : NULL
$ axis.title.x :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : NULL
..$ vjust : num 1
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 2.75points 0points 0points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.title.x.top :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : NULL
..$ vjust : num 0
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 0points 2.75points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.title.x.bottom : NULL
$ axis.title.y :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : NULL
..$ vjust : num 1
..$ angle : num 90
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 2.75points 0points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.title.y.left : NULL
$ axis.title.y.right :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : NULL
..$ vjust : num 1
..$ angle : num -90
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 0points 0points 2.75points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.text :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : chr "grey30"
..$ size : 'rel' num 0.8
..$ hjust : NULL
..$ vjust : NULL
..$ angle : NULL
..$ lineheight : NULL
..$ margin : NULL
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.text.x :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : NULL
..$ vjust : num 1
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 2.2points 0points 0points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.text.x.top :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : NULL
..$ vjust : num 0
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 0points 2.2points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.text.x.bottom : NULL
$ axis.text.y :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : num 1
..$ vjust : NULL
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 2.2points 0points 0points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.text.y.left : NULL
$ axis.text.y.right :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : num 0
..$ vjust : NULL
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 0points 0points 2.2points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.text.theta : NULL
$ axis.text.r :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : num 0.5
..$ vjust : NULL
..$ angle : NULL
..$ lineheight : NULL
..$ margin : 'margin' num [1:4] 0points 2.2points 0points 2.2points
.. ..- attr(*, "unit")= int 8
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ axis.ticks : list()
..- attr(*, "class")= chr [1:2] "element_blank" "element"
$ axis.ticks.x : NULL
$ axis.ticks.x.top : NULL
$ axis.ticks.x.bottom : NULL
$ axis.ticks.y : NULL
$ axis.ticks.y.left : NULL
$ axis.ticks.y.right : NULL
$ axis.ticks.theta : NULL
$ axis.ticks.r : NULL
$ axis.minor.ticks.x.top : NULL
$ axis.minor.ticks.x.bottom : NULL
$ axis.minor.ticks.y.left : NULL
$ axis.minor.ticks.y.right : NULL
$ axis.minor.ticks.theta : NULL
$ axis.minor.ticks.r : NULL
$ axis.ticks.length : 'simpleUnit' num 2.75points
..- attr(*, "unit")= int 8
$ axis.ticks.length.x : NULL
$ axis.ticks.length.x.top : NULL
$ axis.ticks.length.x.bottom : NULL
$ axis.ticks.length.y : NULL
$ axis.ticks.length.y.left : NULL
$ axis.ticks.length.y.right : NULL
$ axis.ticks.length.theta : NULL
$ axis.ticks.length.r : NULL
$ axis.minor.ticks.length : 'rel' num 0.75
$ axis.minor.ticks.length.x : NULL
$ axis.minor.ticks.length.x.top : NULL
$ axis.minor.ticks.length.x.bottom: NULL
$ axis.minor.ticks.length.y : NULL
$ axis.minor.ticks.length.y.left : NULL
$ axis.minor.ticks.length.y.right : NULL
$ axis.minor.ticks.length.theta : NULL
$ axis.minor.ticks.length.r : NULL
$ axis.line : list()
..- attr(*, "class")= chr [1:2] "element_blank" "element"
$ axis.line.x : NULL
$ axis.line.x.top : NULL
$ axis.line.x.bottom : NULL
$ axis.line.y : NULL
$ axis.line.y.left : NULL
$ axis.line.y.right : NULL
$ axis.line.theta : NULL
$ axis.line.r : NULL
$ legend.background : list()
..- attr(*, "class")= chr [1:2] "element_blank" "element"
$ legend.margin : 'margin' num [1:4] 5.5points 5.5points 5.5points 5.5points
..- attr(*, "unit")= int 8
$ legend.spacing : 'simpleUnit' num 11points
..- attr(*, "unit")= int 8
$ legend.spacing.x : NULL
$ legend.spacing.y : NULL
$ legend.key : list()
..- attr(*, "class")= chr [1:2] "element_blank" "element"
$ legend.key.size : 'simpleUnit' num 1.2lines
..- attr(*, "unit")= int 3
$ legend.key.height : NULL
$ legend.key.width : NULL
$ legend.key.spacing : 'simpleUnit' num 5.5points
..- attr(*, "unit")= int 8
$ legend.key.spacing.x : NULL
$ legend.key.spacing.y : NULL
$ legend.frame : NULL
$ legend.ticks : NULL
$ legend.ticks.length : 'rel' num 0.2
$ legend.axis.line : NULL
$ legend.text :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : 'rel' num 0.8
..$ hjust : NULL
..$ vjust : NULL
..$ angle : NULL
..$ lineheight : NULL
..$ margin : NULL
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ legend.text.position : NULL
$ legend.title :List of 11
..$ family : NULL
..$ face : NULL
..$ colour : NULL
..$ size : NULL
..$ hjust : num 0
..$ vjust : NULL
..$ angle : NULL
..$ lineheight : NULL
..$ margin : NULL
..$ debug : NULL
..$ inherit.blank: logi TRUE
..- attr(*, "class")= chr [1:2] "element_text" "element"
$ legend.title.position : NULL
$ legend.position : chr "right"
$ legend.position.inside : NULL
$ legend.direction : NULL
$ legend.byrow : NULL
$ legend.justification : chr "center"
$ legend.justification.top : NULL
$ legend.justification.bottom : NULL
$ legend.justification.left : NULL
$ legend.justification.right : NULL
$ legend.justification.inside : NULL
$ legend.location : NULL
$ legend.box : NULL
$ legend.box.just : NULL
$ legend.box.margin : 'margin' num [1:4] 0cm 0cm 0cm 0cm
..- attr(*, "unit")= int 1
$ legend.box.background : list()
..- attr(*, "class")= chr [1:2] "element_blank" "element"
$ legend.box.spacing : 'simpleUnit' num 11points
..- attr(*, "unit")= int 8
[list output truncated]
- attr(*, "class")= chr [1:2] "theme" "gg"
- attr(*, "complete")= logi TRUE
- attr(*, "validate")= logi TRUE
La mediana (línea central dentro de las cajas) es similar en la mayoría de los países, oscilando entre 12 y 17 años de educación. Sin embargo, hay diferencias notables: Islandia (IS): Tiene una de las medianas más altas (alrededor de 17 años), lo que indica que su población tiende a tener más años de educación formal. Portugal (PT): Presenta la mediana más baja (alrededor de 12 años), lo que sugiere un menor nivel de escolaridad promedio. Hay numerosos valores atípicos en la parte superior en casi todos los países. Esto puede representar a individuos con niveles de educación mucho más altos que el promedio, como personas con múltiples títulos universitarios o educación especializada.
{r eval = T}
library(dslabs)
gap <- dslabs::gapminder
head(gap) country year infant_mortality life_expectancy fertility
1 Albania 1960 115.40 62.87 6.19
2 Algeria 1960 148.20 47.50 7.65
3 Angola 1960 208.00 35.98 7.32
4 Antigua and Barbuda 1960 NA 62.97 4.43
5 Argentina 1960 59.87 65.39 3.11
6 Armenia 1960 NA 66.86 4.55
population gdp continent region
1 1636054 NA Europe Southern Europe
2 11124892 13828152297 Africa Northern Africa
3 5270844 NA Africa Middle Africa
4 54681 NA Americas Caribbean
5 20619075 108322326649 Americas South America
6 1867396 NA Asia Western Asia
str(gap)'data.frame': 10545 obs. of 9 variables:
$ country : Factor w/ 185 levels "Albania","Algeria",..: 1 2 3 4 5 6 7 8 9 10 ...
$ year : int 1960 1960 1960 1960 1960 1960 1960 1960 1960 1960 ...
$ infant_mortality: num 115.4 148.2 208 NA 59.9 ...
$ life_expectancy : num 62.9 47.5 36 63 65.4 ...
$ fertility : num 6.19 7.65 7.32 4.43 3.11 4.55 4.82 3.45 2.7 5.57 ...
$ population : num 1636054 11124892 5270844 54681 20619075 ...
$ gdp : num NA 1.38e+10 NA NA 1.08e+11 ...
$ continent : Factor w/ 5 levels "Africa","Americas",..: 4 1 1 2 2 3 2 5 4 3 ...
$ region : Factor w/ 22 levels "Australia and New Zealand",..: 19 11 10 2 15 21 2 1 22 21 ...
summary(gap) country year infant_mortality life_expectancy
Albania : 57 Min. :1960 Min. : 1.50 Min. :13.20
Algeria : 57 1st Qu.:1974 1st Qu.: 16.00 1st Qu.:57.50
Angola : 57 Median :1988 Median : 41.50 Median :67.54
Antigua and Barbuda: 57 Mean :1988 Mean : 55.31 Mean :64.81
Argentina : 57 3rd Qu.:2002 3rd Qu.: 85.10 3rd Qu.:73.00
Armenia : 57 Max. :2016 Max. :276.90 Max. :83.90
(Other) :10203 NA's :1453
fertility population gdp continent
Min. :0.840 Min. :3.124e+04 Min. :4.040e+07 Africa :2907
1st Qu.:2.200 1st Qu.:1.333e+06 1st Qu.:1.846e+09 Americas:2052
Median :3.750 Median :5.009e+06 Median :7.794e+09 Asia :2679
Mean :4.084 Mean :2.701e+07 Mean :1.480e+11 Europe :2223
3rd Qu.:6.000 3rd Qu.:1.523e+07 3rd Qu.:5.540e+10 Oceania : 684
Max. :9.220 Max. :1.376e+09 Max. :1.174e+13
NA's :187 NA's :185 NA's :2972
region
Western Asia :1026
Eastern Africa : 912
Western Africa : 912
Caribbean : 741
South America : 684
Southern Europe: 684
(Other) :5586
colSums(is.na(gap)) country year infant_mortality life_expectancy
0 0 1453 0
fertility population gdp continent
187 185 2972 0
region
0
Si tenemos datos NA en el marco de datos gap. Este aparece en las variables infant_mortality, fertility, population y gdp.
library(ggplot2)
library(dplyr)
fertility_data <- gap %>%
filter(country %in% c("Croatia", "Albania")) %>%
select(country, year, fertility)
ggplot(fertility_data, aes(x = year, y = fertility, color = country)) +
geom_line(size = 1) +
labs(
title = "Evolución de la fertilidad en Croacia y Albania (1966-2016)",
x = "Año",
y = "Fertilidad",
color = "País"
) +
theme_minimal()En los años 60, 70 y 80 había una disparidad enorme entre ambas naciones en sus índices de fertilidad, Albania de hecho triplicaba el índivce croata los prímeros años del estudio. Con la llegada del nuevo siglo las diferencias se han reducido enormemente, dejándolos prácticamente iguales.
ggplot(fertility_data, aes(x = fertility, fill = country)) +
geom_histogram(binwidth = 0.5, color = "black", alpha = 0.7) +
facet_wrap(~country) +
labs(
title = "Distribución de la fertilidad en Croacia y Albania",
x = "Tasa de fertilidad",
y = "Frecuencia",
fill = "País"
) +
theme_minimal()life_data <- gap %>%
filter(country %in% c("Croatia", "Albania", "Serbia")) %>%
select(country, year, life_expectancy)
ggplot(life_data, aes(x = year, y = life_expectancy, color = country)) +
geom_line(size = 1.2) +
geom_point(size = 2) +
labs(
title = "Evolución de la esperanza de vida (1966-2016)",
x = "Año",
y = "Esperanza de vida (años)",
color = "País"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
legend.position = "bottom"
)Tras ello, podemos observar que la esperanza de vida de los 3 países ha sido muy parecido al largo d elos años, con una ascensión constante. Serbia se descuelga durante final de siglo debido a las Guerras Yugoslavas, pero tras ello recupera poco a poco. El país que mayor incremento ha sufrido ha sido Albania, que ha pasado de ser la última de la fila en 1966 a ser la primera en la actualidad.