pacman::p_load(tidyverse,
sjmisc,
dplyr,
haven, # para .dta, .sav
readr, # para .csv
readxl) # para archivos excel Importar datos en R
Otras formas de importar datos en R
1. Cargar librerías
2. Cargar datos en distintos formatos
a) .dta
Los archivos con extensión .dta generalmente provienen de Stata, es decir, son bases o datos procesadas en dicho software. Para estos archivos, así como aquellos que vienen en .sav, usamos el paquete haven(). En estos casos siempre es conveniente señalar el tipo de encoding en el argumento, en este caso, usamos "UTF-8" que corresponde al estandar.
elsoc_2022 <- haven::read_dta(file = "input/data/ELSOC_W06_v1.0_Stata.dta", encoding = "UTF-8")
elsoc_2022# A tibble: 2,730 × 437
idencuesta ola version muestra cuestion_mig cuestion_completo formato
<dbl> <dbl+lbl> <dbl> <dbl+lbl> <dbl+lbl> <dbl+lbl> <dbl+l>
1 1101011 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
2 1101012 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
3 1101023 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
4 1101041 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
5 1101081 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
6 1101082 6 [2022] 202201 1 [Muest… 1 [Peruanos] 1 [Completa] 1 [CAP…
7 1101102 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
8 1101103 6 [2022] 202201 1 [Muest… 1 [Peruanos] 1 [Completa] 1 [CAP…
9 1101111 6 [2022] 202201 1 [Muest… 2 [Venezola… 1 [Completa] 1 [CAP…
10 1101113 6 [2022] 202201 1 [Muest… 1 [Peruanos] 1 [Completa] 1 [CAP…
# ℹ 2,720 more rows
# ℹ 430 more variables: segmento <dbl>, comuna <chr>, comuna_cod <dbl+lbl>,
# region <chr>, region_cod <dbl+lbl>, estrato <dbl+lbl>, ponderador01 <dbl>,
# ponderador02 <dbl>, fact_exp01 <dbl>, fact_exp02 <dbl>, r05_01 <dbl+lbl>,
# r05_02 <dbl+lbl>, r06 <dbl+lbl>, r07 <dbl+lbl>, r08 <dbl+lbl>,
# r09 <dbl+lbl>, r10 <dbl+lbl>, r11 <dbl+lbl>, r12_01 <dbl+lbl>,
# r12_02 <dbl+lbl>, r12_03 <dbl+lbl>, r12_04 <dbl+lbl>, r12_05 <dbl+lbl>, …
b) .csv
Para los archivos con extension .csv usamos el paquete readr::. Importante es que los archivos .csv vienen separados por comas ,.
elsoc_2022 <- readr::read_csv(file ="input/data/ELSOC_W06_v1.0_CSV.csv")Rows: 2730 Columns: 437
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (14): comuna, region, c12_09_otro, c16_otro, c17_otro, c20_otro, m36_o...
dbl (422): idencuesta, ola, version, muestra, cuestion_mig, cuestion_comple...
date (1): fecha_entr
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
elsoc_2022# A tibble: 2,730 × 437
idencuesta ola version muestra cuestion_mig cuestion_completo formato
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1101011 6 202201 1 2 1 1
2 1101012 6 202201 1 2 1 1
3 1101023 6 202201 1 2 1 1
4 1101041 6 202201 1 2 1 1
5 1101081 6 202201 1 2 1 1
6 1101082 6 202201 1 1 1 1
7 1101102 6 202201 1 2 1 1
8 1101103 6 202201 1 1 1 1
9 1101111 6 202201 1 2 1 1
10 1101113 6 202201 1 1 1 1
# ℹ 2,720 more rows
# ℹ 430 more variables: segmento <dbl>, comuna <chr>, comuna_cod <dbl>,
# region <chr>, region_cod <dbl>, estrato <dbl>, ponderador01 <dbl>,
# ponderador02 <dbl>, fact_exp01 <dbl>, fact_exp02 <dbl>, r05_01 <dbl>,
# r05_02 <dbl>, r06 <dbl>, r07 <dbl>, r08 <dbl>, r09 <dbl>, r10 <dbl>,
# r11 <dbl>, r12_01 <dbl>, r12_02 <dbl>, r12_03 <dbl>, r12_04 <dbl>,
# r12_05 <dbl>, r12_06 <dbl>, r12_07 <dbl>, r13_nredes <dbl>, …
c) .xlsx
Para los archivos que provienen de Excel, tales como los .xlsx usamos el paquete readxl::. Noten que podemos cargar la base completa, como en el primer ejemplo, pero también podemos especificarle que queremos determinadas columnas y filas de un archivo Excel, como en el segundo ejmplo.
elsoc_2022 <- readxl::read_excel("input/data/ELSOC_W06_v1.0_EXCEL.xlsx")
elsoc_2022# A tibble: 2,730 × 437
idencuesta ola version muestra cuestion_mig cuestion_completo formato
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1101011 6 202201 1 2 1 1
2 1101012 6 202201 1 2 1 1
3 1101023 6 202201 1 2 1 1
4 1101041 6 202201 1 2 1 1
5 1101081 6 202201 1 2 1 1
6 1101082 6 202201 1 1 1 1
7 1101102 6 202201 1 2 1 1
8 1101103 6 202201 1 1 1 1
9 1101111 6 202201 1 2 1 1
10 1101113 6 202201 1 1 1 1
# ℹ 2,720 more rows
# ℹ 430 more variables: segmento <dbl>, comuna <chr>, comuna_cod <dbl>,
# region <chr>, region_cod <dbl>, estrato <dbl>, ponderador01 <dbl>,
# ponderador02 <dbl>, fact_exp01 <dbl>, fact_exp02 <dbl>, r05_01 <dbl>,
# r05_02 <dbl>, r06 <dbl>, r07 <dbl>, r08 <dbl>, r09 <dbl>, r10 <dbl>,
# r11 <dbl>, r12_01 <dbl>, r12_02 <dbl>, r12_03 <dbl>, r12_04 <dbl>,
# r12_05 <dbl>, r12_06 <dbl>, r12_07 <dbl>, r13_nredes <dbl>, …
En este caso le especificamos la hoja del excel en donde están los datos, y también le indicamos el rango que son las columnas y filas que queremos ver. Esto siempre sigue el mismo formato: “COLUMNAFILA_INICIO:COLUMNAFILA_FINAL”. No necesariamente tienen que ser todas las columnas o filas, eso lo podemos cambiar según necesitemos.
elsoc_2022 <- readxl::read_excel(path = "input/data/ELSOC_W06_v1.0_EXCEL.xlsx",
sheet = 1, # indicamos la hoja del excel,
range = "A1:PU2731")
elsoc_2022# A tibble: 2,730 × 437
idencuesta ola version muestra cuestion_mig cuestion_completo formato
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1101011 6 202201 1 2 1 1
2 1101012 6 202201 1 2 1 1
3 1101023 6 202201 1 2 1 1
4 1101041 6 202201 1 2 1 1
5 1101081 6 202201 1 2 1 1
6 1101082 6 202201 1 1 1 1
7 1101102 6 202201 1 2 1 1
8 1101103 6 202201 1 1 1 1
9 1101111 6 202201 1 2 1 1
10 1101113 6 202201 1 1 1 1
# ℹ 2,720 more rows
# ℹ 430 more variables: segmento <dbl>, comuna <chr>, comuna_cod <dbl>,
# region <chr>, region_cod <dbl>, estrato <dbl>, ponderador01 <dbl>,
# ponderador02 <dbl>, fact_exp01 <dbl>, fact_exp02 <dbl>, r05_01 <dbl>,
# r05_02 <dbl>, r06 <dbl>, r07 <dbl>, r08 <dbl>, r09 <dbl>, r10 <dbl>,
# r11 <dbl>, r12_01 <dbl>, r12_02 <dbl>, r12_03 <dbl>, r12_04 <dbl>,
# r12_05 <dbl>, r12_06 <dbl>, r12_07 <dbl>, r13_nredes <dbl>, …
Seleccionamos solo algunas columnas. Ahora vemos que solo tenemos 26 columnas:
elsoc_2022 <- readxl::read_excel(path = "input/data/ELSOC_W06_v1.0_EXCEL.xlsx",
sheet = 1, # indicamos la hoja del excel,
range = "A1:Z2731")
elsoc_2022# A tibble: 2,730 × 26
idencuesta ola version muestra cuestion_mig cuestion_completo formato
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1101011 6 202201 1 2 1 1
2 1101012 6 202201 1 2 1 1
3 1101023 6 202201 1 2 1 1
4 1101041 6 202201 1 2 1 1
5 1101081 6 202201 1 2 1 1
6 1101082 6 202201 1 1 1 1
7 1101102 6 202201 1 2 1 1
8 1101103 6 202201 1 1 1 1
9 1101111 6 202201 1 2 1 1
10 1101113 6 202201 1 1 1 1
# ℹ 2,720 more rows
# ℹ 19 more variables: segmento <dbl>, comuna <chr>, comuna_cod <dbl>,
# region <chr>, region_cod <dbl>, estrato <dbl>, ponderador01 <dbl>,
# ponderador02 <dbl>, fact_exp01 <dbl>, fact_exp02 <dbl>, r05_01 <dbl>,
# r05_02 <dbl>, r06 <dbl>, r07 <dbl>, r08 <dbl>, r09 <dbl>, r10 <dbl>,
# r11 <dbl>, r12_01 <dbl>
d) .RData o .rds
Cuando los datos vienen en formato .R no es necesario asinarle un objeto, lo podemos hacer después de ser necesario. Para leer estos archivos usamos la función load() de R base.
base::load(file = "input/data/ELSOC_W06_v1.0_R.RData")
elsoc_2022# A tibble: 2,730 × 437
idencuesta ola version muestra cuestion_mig cuestion_completo formato
<dbl> <dbl> <int> <dbl> <dbl> <dbl> <dbl>
1 1101011 6 202201 1 2 1 1
2 1101012 6 202201 1 2 1 1
3 1101023 6 202201 1 2 1 1
4 1101041 6 202201 1 2 1 1
5 1101081 6 202201 1 2 1 1
6 1101082 6 202201 1 1 1 1
7 1101102 6 202201 1 2 1 1
8 1101103 6 202201 1 1 1 1
9 1101111 6 202201 1 2 1 1
10 1101113 6 202201 1 1 1 1
# ℹ 2,720 more rows
# ℹ 430 more variables: segmento <dbl>, comuna <chr>, comuna_cod <dbl>,
# region <chr>, region_cod <dbl>, estrato <dbl>, ponderador01 <dbl>,
# ponderador02 <dbl>, fact_exp01 <dbl>, fact_exp02 <dbl>, r05_01 <dbl>,
# r05_02 <dbl>, r06 <dbl>, r07 <dbl>, r08 <dbl>, r09 <dbl>, r10 <dbl>,
# r11 <dbl>, r12_01 <dbl>, r12_02 <dbl>, r12_03 <dbl>, r12_04 <dbl>,
# r12_05 <dbl>, r12_06 <dbl>, r12_07 <dbl>, r13_nredes <dbl>, …