::p_load(tidyverse,
pacman
sjmisc,
dplyr,# para .dta, .sav
haven, # para .csv
readr, # para archivos excel readxl)
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.
<- haven::read_dta(file = "input/data/ELSOC_W06_v1.0_Stata.dta", encoding = "UTF-8")
elsoc_2022
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 ,
.
<- readr::read_csv(file ="input/data/ELSOC_W06_v1.0_CSV.csv") elsoc_2022
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.
<- readxl::read_excel("input/data/ELSOC_W06_v1.0_EXCEL.xlsx")
elsoc_2022
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.
<- readxl::read_excel(path = "input/data/ELSOC_W06_v1.0_EXCEL.xlsx",
elsoc_2022 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:
<- readxl::read_excel(path = "input/data/ELSOC_W06_v1.0_EXCEL.xlsx",
elsoc_2022 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.
::load(file = "input/data/ELSOC_W06_v1.0_R.RData")
base
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>, …