if (exists('nacimientos.Rdata')){
load('nacimientos.Rdata')
} else{
bases <- tibble(archivo = dir('Nacimientos 1984-2015')) %>%
filter(!str_detect(archivo, '~\\$'))
bases <- bases %>%
mutate(archivo_info = str_replace_all(archivo, '(\\.xlsx)', '')) %>%
mutate(base = map(paste0('Nacimientos 1984-2015/', archivo), ~ read_excel(.x) %>% clean_names %>% mutate_all(as.integer)),
variables = map(base, names))
bases %>%
select(archivo, variables) %>%
mutate(variables = paste(variables)) %>% kable()
}
## Warning in strptime(x, format, tz = tz): unknown timezone 'default/America/
## Santiago'
| archivo | variables |
|---|---|
| nacim1984.xlsx | c(“año_nacim”, “mes_nacim”, “sexo_nacido”, “edad_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “nivel_instruc_madre”, “condic_activ_madre”, “provincia_madre”, “semana_gestacion”, “peso_al_nacer”, “talla_al_nacer”, “curso_padre”, “curso_madre”) |
| nacim1985.xlsx | c(“sexo”, “fecha_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla_al_nacer”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condic_activ_madre”, “comuna_madre”) |
| nacim1986.xlsx | c(“sexo”, “fecha_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla_al_nacer”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condic_activ_madre”, “comuna_madre”) |
| nacim1987.xlsx | c(“sexo”, “fecha_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla_al_nacer”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condic_activ_madre”, “comuna_madre”) |
| nacim1988.xlsx | c(“sexo”, “fecha_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla_al_nacer”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condic_activ_madre”, “comuna_madre”) |
| nacim1989.xlsx | c(“sexo”, “fecha_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla_al_nacer”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condic_activ_madre”, “comuna_madre”) |
| nacim1990.xlsx | c(“sexo_nacido”, “dia_nacim”, “mes_nacim”, “año_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “condic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condi_activ_madre”, “comuna_madre”) |
| nacim1991.xlsx | c(“sexo_nacido”, “dia_nacim”, “mes_nacim”, “año_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “codic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condi_activ_madre”, “comuna_madre”) |
| nacim1992.xlsx | c(“sexo_nacido”, “dia_nacim”, “mes_nacim”, “año_nacim”, “semanas_gestacion”, “peso_al_nacer”, “talla”, “edad_padre”, “curso_padre”, “nivel_instruc_padre”, “codic_activ_padre”, “edad_madre”, “curso_madre”, “nivel_instruc_madre”, “condi_activ_madre”, “comuna_madre”) |
| nacim1993.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim1994.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim1995.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim1996.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim1997.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “conact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim1998.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim1999.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2000.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2001.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2002.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2003.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2004.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2005.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_padre”, “curso_padre”, “nivel_padre”, “condact_padre”, “edad_madre”, “curso_madre”, “nivel_madre”, “condact_madre”, “comuna”) |
| nacim2006.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “año_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2007.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2008.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2009.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2010.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2011.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2012.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2013.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2014.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
| nacim2015.xlsx | c(“sexo”, “dia_nac”, “mes_nac”, “ano_nac”, “semanas”, “peso”, “talla”, “edad_p”, “ins_c_p”, “ins_n_p”, “activ_p”, “edad_m”, “ins_c_m”, “ins_n_m”, “activ_m”, “comuna”) |
Casos dentro de cada archivo, antes de ser limpiado.
save(bases, file = 'nacimientos.Rdata')
bases %>%
transmute(archivo,
casos = map_int(base, nrow))
## # A tibble: 32 x 2
## archivo casos
## <chr> <int>
## 1 nacim1984.xlsx 251765
## 2 nacim1985.xlsx 248879
## 3 nacim1986.xlsx 259347
## 4 nacim1987.xlsx 265774
## 5 nacim1988.xlsx 281752
## 6 nacim1989.xlsx 288608
## 7 nacim1990.xlsx 292146
## 8 nacim1991.xlsx 284483
## 9 nacim1992.xlsx 279098
## 10 nacim1993.xlsx 275916
## # ... with 22 more rows
Generar base plana
nacimientos <- unnest(bases, base)
# mutate(sexo = map_chr(.x = sexo, .f = ~ str_trunc(.x, width = 1, ellipsis = '')),
# email = if_else(is.na(email_universidad), email_personal, email_universidad)) %>%
# group_by_at(vars(-id)) %>%
# summarise(n_unicos = n(),
# id = first(id)) %>%
# ungroup()
names(nacimientos)
## [1] "archivo" "archivo_info" "año_nacim"
## [4] "mes_nacim" "sexo_nacido" "edad_padre"
## [7] "nivel_instruc_padre" "condic_activ_padre" "edad_madre"
## [10] "nivel_instruc_madre" "condic_activ_madre" "provincia_madre"
## [13] "semana_gestacion" "peso_al_nacer" "talla_al_nacer"
## [16] "curso_padre" "curso_madre" "sexo"
## [19] "fecha_nacim" "semanas_gestacion" "comuna_madre"
## [22] "dia_nacim" "talla" "condi_activ_madre"
## [25] "codic_activ_padre" "dia_nac" "mes_nac"
## [28] "año_nac" "semanas" "peso"
## [31] "nivel_padre" "condact_padre" "nivel_madre"
## [34] "condact_madre" "comuna" "conact_padre"
## [37] "ano_nac" "edad_p" "ins_c_p"
## [40] "ins_n_p" "activ_p" "edad_m"
## [43] "ins_c_m" "ins_n_m" "activ_m"
Revisar y homologar fechas de nacimiento
nacimientos %>%
group_by(archivo) %>%
summarise_at(vars(año_nacim, año_nac, ano_nac, fecha_nacim), funs((!is.na(.)) %>% sum))
## # A tibble: 32 x 5
## archivo año_nacim año_nac ano_nac fecha_nacim
## <chr> <int> <int> <int> <int>
## 1 nacim1984.xlsx 251765 0 0 0
## 2 nacim1985.xlsx 0 0 0 248879
## 3 nacim1986.xlsx 0 0 0 259347
## 4 nacim1987.xlsx 0 0 0 265774
## 5 nacim1988.xlsx 0 0 0 281752
## 6 nacim1989.xlsx 0 0 0 288608
## 7 nacim1990.xlsx 292146 0 0 0
## 8 nacim1991.xlsx 284483 0 0 0
## 9 nacim1992.xlsx 279098 0 0 0
## 10 nacim1993.xlsx 0 275916 0 0
## # ... with 22 more rows
nacimientos %>%
group_by(archivo) %>%
summarise(fecha_nacim = first(fecha_nacim)) %>%
filter(!is.na(fecha_nacim)) %>%
pull(fecha_nacim) %>% lubridate::dmy() %>% year()
## [1] 1985 1986 1987 1988 1989
nacimientos %$%
table(año_nacim, año_nac, useNA = 'ifany')
## año_nac
## año_nacim 95 1993 1994 1996 1997 1998 1999 2000
## 1984 0 0 0 0 0 0 0 0
## 1990 0 0 0 0 0 0 0 0
## 1991 0 0 0 0 0 0 0 0
## 1992 0 0 0 0 0 0 0 0
## <NA> 265932 275916 273766 264793 259959 257105 250674 248893
## año_nac
## año_nacim 2003 2004 2005 2006 <NA>
## 1984 0 0 0 0 251765
## 1990 0 0 0 0 292146
## 1991 0 0 0 0 284483
## 1992 0 0 0 0 279098
## <NA> 234486 230352 230831 231383 4048155
nacimientos <- nacimientos %>%
mutate(año_nac = if_else(año_nac == 95, 1995L, año_nac),
año_nacim = if_else(is.na(año_nacim), año_nac, año_nacim),
año_nacim = if_else(is.na(año_nacim), ano_nac, año_nacim),
mes_nacim = if_else(is.na(mes_nacim), mes_nac, mes_nacim),
dia_nacim = if_else(is.na(dia_nacim), dia_nac, dia_nacim),
año_nacim = if_else(is.na(año_nacim), lubridate::dmy(fecha_nacim) %>% year() %>% as.integer(), año_nacim),
mes_nacim = if_else(is.na(mes_nacim), lubridate::dmy(fecha_nacim) %>% month() %>% as.integer(), mes_nacim),
dia_nacim = if_else(is.na(dia_nacim), lubridate::dmy(fecha_nacim) %>% day() %>% as.integer(), dia_nacim))
## Warning: 14 failed to parse.
## Warning: 14 failed to parse.
## Warning: 14 failed to parse.
# nacimientos %$%
# table(año_nacim, año_nac, useNA = 'ifany')
nacimientos <- nacimientos %>%
mutate(fecha_nacimiento = lubridate::make_date(year = año_nacim, month = mes_nacim, day = dia_nacim),
fecha_mes_dia = lubridate::make_date(month = mes_nacim, day = dia_nacim))
nacimientos %$%
table(year(fecha_nacimiento), useNA = 'ifany')
##
## 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994
## 248879 259341 265767 281752 288607 292124 284482 279098 275916 273766
## 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
## 265931 264793 259952 257105 250674 248893 246116 238981 234486 230352
## 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
## 230831 231378 240569 246580 252240 250643 247358 243635 242005 250997
## 2015 <NA>
## 244670 251816
nacimientos %>%
filter(is.na(fecha_nacimiento)) %>%
select(archivo, fecha_nacimiento, fecha_nacim, año_nacim, mes_nacim, dia_nacim)
## # A tibble: 251,816 x 6
## archivo fecha_nacimiento fecha_nacim año_nacim mes_nacim
## <chr> <date> <int> <int> <int>
## 1 nacim1984.xlsx NA NA 1984 5
## 2 nacim1984.xlsx NA NA 1984 7
## 3 nacim1984.xlsx NA NA 1984 7
## 4 nacim1984.xlsx NA NA 1984 10
## 5 nacim1984.xlsx NA NA 1984 9
## 6 nacim1984.xlsx NA NA 1984 7
## 7 nacim1984.xlsx NA NA 1984 9
## 8 nacim1984.xlsx NA NA 1984 8
## 9 nacim1984.xlsx NA NA 1984 8
## 10 nacim1984.xlsx NA NA 1984 6
## # ... with 251,806 more rows, and 1 more variables: dia_nacim <int>
fecha_mes_dia_min <- nacimientos %>%
filter(año_nacim != 1984) %>%
group_by(fecha_mes_dia) %>%
summarise(nacimientos = n()) %>%
arrange(nacimientos) %>%
filter(!is.na(fecha_mes_dia)) %>%
head(11) %>% pull(fecha_mes_dia)
names(fecha_mes_dia_min) <- paste0(lubridate::mday(fecha_mes_dia_min), '-', lubridate::month(fecha_mes_dia_min))
fecha_mes_dia_min_df <- tibble(fechas = fecha_mes_dia_min,
texto = names(fecha_mes_dia_min))
nacimientos_total <- nacimientos %>%
filter(año_nacim != 1984) %>%
group_by(fecha_mes_dia) %>%
summarise(nacimientos = n()) %>%
filter(!is.na(fecha_mes_dia)) %>% pull(nacimientos) %>% sum()
nacimientos %>%
filter(año_nacim != 1984) %>%
group_by(fecha_mes_dia) %>%
summarise(nacimientos = n()) %>%
ggplot(aes(x = fecha_mes_dia, y = nacimientos)) +
geom_smooth() +
# geom_vline(xintercept = make_date(month = '9', day = '16'), color = 'yellow') +
geom_vline(xintercept = fecha_mes_dia_min, color = 'red', alpha = .5) +
ggrepel::geom_label_repel(data = fecha_mes_dia_min_df, aes(x = fechas, y = 5000, label = texto),
size = 3) +
geom_line(alpha = 1) +
scale_x_date(date_labels = '%m', date_breaks = 'month') +
scale_color_gradient(low = 'red', high = 'blue') +
labs(title = 'Nacimientos en Chile a lo largo del año',
subtitle = paste0('Total entre 1985 y 2015, para un total de ', nacimientos_total, ' nacimientos'),
caption = 'Datos INE',
x = 'fecha de nacimiento (días)') +
theme(legend.position = 'top')
## `geom_smooth()` using method = 'loess'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_path).
nacimientos %>%
filter(año_nacim != 1984) %>%
group_by(fecha_nacimiento) %>%
summarise(nacimientos = n()) %>%
ggplot(aes(x = fecha_nacimiento, y = nacimientos)) +
geom_smooth() +
geom_line(size = .1, alpha = .5) +
scale_x_date(date_labels = '%y', date_breaks = 'year') +
scale_color_gradient(low = 'red', high = 'blue') +
labs(title = 'Nacimientos en Chile entre 1985 y 2015',
subtitle = 'Total nacimientos,',
caption = 'Datos INE',
x = 'fecha de nacimiento (días)') +
theme(legend.position = 'top')
## `geom_smooth()` using method = 'gam'
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_path).
nacimientos %>%
filter(año_nacim != 1984) %>%
group_by(año_nacim, fecha_mes_dia) %>%
summarise(nacimientos = n()) %>%
ggplot(aes(x = fecha_mes_dia, y = nacimientos, color = año_nacim)) +
geom_line(alpha = .05) +
geom_smooth(aes(group = año_nacim), alpha = .1, se = FALSE) +
scale_x_date(date_labels = '%m', date_breaks = 'month') +
scale_color_gradient(low = 'blue', high = 'red', guide = 'legend') +
labs(title = 'Nacimientos en chile',
subtitle = 'Entre 1985 y 2015 por año',
caption = 'Datos INE',
x = 'fecha de nacimiento (días)') +
theme(legend.position = 'top')
## `geom_smooth()` using method = 'loess'
## Warning: Removed 12 rows containing non-finite values (stat_smooth).
## Warning: Removed 12 rows containing missing values (geom_path).