Importación y exportación de datos en R

Importación de datos

Tipo de archivos que es posible importar en R studio:

  • Archivos .rdata

  • Archivos .rds

  • Archivos de texto (base, readr)

  • Archivos de Excel

  • Archivos de SPSS

  • Archivos de SAS

  • Archivos de Stata

Importación de archivos .Rdata

El comando general para importar archivos .Rdata es el siguientE:

load(file)

  • filE: Indica la ruta de acceso en la que se encuentra el archivo que se desea importar.

Es posible digitarlo directamente o almacenar previamente la ruta de acceso en una variable y luego indicarla dentro del paréntesis.

Ejemplo de importación de archivos .Rdata.

library(dplyr)
library(kableExtra)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/Rdata/data_comercio_exterior.RData"

load(ruta_acceso)
head(data_comercio_exterior,15) %>% 
  kable(caption = "Tabla de comercio exterior") %>%  
  kable_minimal(html_font = "Arial", font_size = 14) %>% 
  add_footnote(label="elaboración en base a datos del Banco Central de Reserva",
               notation="symbol") %>%  kable_styling() 
Tabla de comercio exterior
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 4010390000 2017 4 58.06 0.92 0 0
Afganistan 6812999000 2017 4 88.38 1.39 0 0
Afganistan 8487900000 2017 4 20.93 0.33 0 0
Afganistan 8511800000 2017 4 98.93 1.56 0 0
Afganistan 8708930000 2017 4 62.18 0.98 0 0
Afganistan 9028200000 2017 4 130.06 2.05 0 0
Afganistan 6913100000 2017 12 650.43 5.49 0 0
Afganistan 7326209000 2017 12 2.00 0.01 0 0
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0
Afganistan 6104620000 2018 10 946.01 722.28 0 0
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0
Afganistan 6405900000 2018 10 2260.03 1725.55 0 0
Afganistan 8206000000 2018 10 6.56 5.02 0 0
* elaboración en base a datos del Banco Central de Reserva

Importación de archivos tipo .rds

El tipo de archivo .rds, que hace alusión a “R Data Serialization”, es utilizado para almacenar un único objeto de R (como un data frame, una lista, un modelo estadístico, etc.) Este tipo de archivo tiene la ventaja que permite comprimir la data que se desea utilizar.

El comando general para importar archivos tipo .rds es el siguientE:

readRDS(file)

  • filE: Indica la ruta de acceso en la que se encuentra el archivo que se desea importar.

Es posible digitarlo directamente o almacenar previamente la ruta de acceso en una variable y luego indicarla dentro del paréntesis.

Ejemplo de importación de archivo tipo .rds

ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/RDS/data_comercio_exterior.rds"
ejemplords<-readRDS(ruta_acceso)

ejemplords %>%
  head(15) %>%
  kable(caption = "Datos") %>%  
  kable_minimal(html_font = "Arial", 
                font_size = 14) %>% 
  add_footnote(label="elaboración en base a datos del Banco Central de Reserva",
               notation="symbol") %>%
  kable_styling() 
Datos
pais sac anio mes valor_cif kilogramos_importaciones valor_fob kilogramos_exportaciones
Afganistan 4010390000 2017 4 58.06 0.92 0 0
Afganistan 6812999000 2017 4 88.38 1.39 0 0
Afganistan 8487900000 2017 4 20.93 0.33 0 0
Afganistan 8511800000 2017 4 98.93 1.56 0 0
Afganistan 8708930000 2017 4 62.18 0.98 0 0
Afganistan 9028200000 2017 4 130.06 2.05 0 0
Afganistan 6913100000 2017 12 650.43 5.49 0 0
Afganistan 7326209000 2017 12 2.00 0.01 0 0
Afganistan 0806200000 2018 6 6448.43 1463.92 0 0
Afganistan 6104220000 2018 10 3153.37 2407.61 0 0
Afganistan 6104620000 2018 10 946.01 722.28 0 0
Afganistan 6105100000 2018 10 9405.39 7181.03 0 0
Afganistan 6106100000 2018 10 1353.32 1725.55 0 0
Afganistan 6405900000 2018 10 2260.03 1725.55 0 0
Afganistan 8206000000 2018 10 6.56 5.02 0 0
* elaboración en base a datos del Banco Central de Reserva

Archivos de texto (base, readr)

Es posible realizar la importación de un archivo de texto a través de dos maneras:

  • (R base) read.table

  • Librería readr

Utilizando la importación por defecto de archivos de texto

La estructura general del comando read.table tiene la siguiente forma:

ejemplo<-read.table(file, header = , sep = ““)

  • file: Se refiere a la ruta de acceso del archivo que se desea importar. Al final de dicha ruta debe de aparecer el nombre seguido del tipo de archivo que este es.

  • header: Indica si el archivo tiene encabezados, es decir, si la primer fila del archivo que se desea importar contiene los títulos de las variables; Si esto es cierto se coloca “header = TRUE”, caso contrario se coloca “header = FALSE”

  • sep: Hace referencia por cual caracter están seprados Los valores de cada línea del archivo; Si sep = “” (el valor predeterminado para read.table), el separador es “espacio en blanco”.

Ejemplo de importación de datos tipo texto

ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/TXT/WareCost.txt"

ejemplotxt<-read.table(ruta_acceso, 
                       header = T, 
                       sep = "")
head(ejemplotxt,10) %>% 
  kable(caption = "Datos",
        align = "c") %>%  
  kable_minimal(html_font = "Arial", 
                font_size = 14)
Datos
Cost Sales Orders
52.95 386 4015
71.66 446 3806
85.58 512 5309
63.69 401 4262
72.81 457 4296
68.44 458 4097
52.46 301 3213
70.77 484 4809
82.03 517 5237
74.39 503 4732

Utilizando la librería “readr”.

El uso de la librería se fundamenta en la transformación de datos planos o unidimensionales a data de tipo “Tibble”, es decir, el problema clave que resuelve readr es analizar un archivo plano en un tibble. El análisis es el proceso de tomar un archivo de texto y convertirlo en un tibble rectangular donde cada columna es fundamentado de acuerdo a condiciones solicitadas.

La forma general del comando es la siguientE:

ejemplo2<-read_x(file, col_names = TRUE, col_types = NULL, col_select = NULL,locale, n_max = Inf,skip = 0, na = c(““,”NA”), guess_max = min(1000, n_max), show_col_types =)

La “x” colocada al principio del comando Representa al conjunto de posibles combinaciones que se pueden realizar con el comando para importar un tipo de archivo en cada caso. (delim, csv, csv2, tsv, fwf)

  • File: Hace referencia a la ruta de acceso del archivo que se quiere importar.

  • col_names Hace referencia a si la primera fila del archivo contiene los nombres de las columnas.

  • col_types Permite especificar los tipos de datos de las columnas manualmente.

  • n_max Establece el número máximo de filas a leer. Inf quiere decir que se leeran todas las filas.

  • skip Permite omitir un número específico de filas al comienzo del archivo. Tipo: Un número entero; por defecto es 0, lo que significa que no se omiten filas.

  • na = c(““,”NA”):Especifica qué cadenas se deben considerar como valores NA (no disponible

  • guess_max = min(1000, n_max):Define cuántas filas se deben usar para adivinar los tipos de datos de las columnas. Tipo: Un número entero; el valor predeterminado es el mínimo entre 1000 y n_max.

  • show_col_types: Indica si se debe mostrar información sobre los tipos de columnas que se están leyendo. Puede colocarse TRUE O FALSE.

Ejemplo con librería “readr”

library(readr)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/TXT/WareCost.txt"

ejemplo2<-read_table(ruta_acceso,
                     col_names = TRUE,
                     n_max = 5)
ejemplo2 %>% 
  kable(caption = "Datos",
        align = "c") %>%  
  kable_minimal(html_font = "Arial", 
                font_size = 14)
Datos
Cost Sales Orders
52.95 386 4015
71.66 446 3806
85.58 512 5309
63.69 401 4262
72.81 457 4296

Importación de archivos Excel.

Para importar un archivo de Excel se requiere de la librería “readxl”. La forma general del comando es la siguientE:

ejemplo_excel<-read_excel(path, sheet = NULL, range = NULL)

  • path:Es la ruta de acceso del archivo de Excel que se desea importar.

  • sheet: Permite especificar qué hoja del archivo de Excel se quiere seleccionar.

  • range: Permite definir un rango específico de celdas que se desea leer dentro de la hoja seleccionada del archivo a importar.

Ejemplo de importación de archivo Excel.

library(readxl)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/EXCEL/informal.xlsx"

ejemplo_excel<-read_excel(ruta_acceso)
ejemplo_excel %>% 
  kable(caption = "Cantidad de puestos de trabajo informal: 2014-2021",
        align = "c") %>%  
  kable_minimal(html_font = "Arial", 
                font_size = 14)
Cantidad de puestos de trabajo informal: 2014-2021
Actividad 2014 2015 2016 2017 2018 2019 2020 2021 (p)
Agricultura, ganadería, silvicultura y pesca 513908 500106 505051 489292 489851 489599 420046 499667
Explotación de minas y canteras 2674 4363 2930 3837 4386 4123 2589 3763
Industrias manufactureras 286702 297987 287413 285412 295329 303163 247335 287568
Suministro de electricidad, gas, vapor y aire acondicionado 152 421 389 665 542 911 198 400
Suministro de agua, alcantarillados y gestión de desechos 1109 1475 1990 2067 2143 2101 1285 968
Construcción 116749 121377 120963 131073 141239 155265 116299 165404
Comercio, reparación de vehículos automotores y motocicletas 474605 493141 505902 522397 533594 547202 439110 539385
Transporte y almacenamiento 64252 68979 74021 69911 75244 79690 66188 76285
Actividades de alojamiento y de servicio de comidas 163357 164450 171163 180553 178744 183626 153007 186644
Información y comunicaciones 3976 3290 3583 2668 3331 3932 3005 2945
Actividades financieras y de seguros 3266 3236 3544 3130 3224 3438 2726 6035
Actividades inmobiliarias 7029 4905 3747 7712 5384 3659 2356 4336
Actividades profesionales, científicas y técnicas 20287 18224 19968 22268 23935 23316 17620 21342
Actividades de servicios administrativos y de apoyo 17793 19911 18420 20260 17375 16910 20941 18157
Administración pública y defensa, planes de seguridad social y de afiliación obligatoria 0 0 0 0 0 0 0 0
Enseñanza 19376 22689 18969 18824 18981 16785 68424 12285
Actividades de atención de la salud humana y de asistencia social 10514 8265 10006 10089 9713 8497 10268 5915
Actividades artísticas, de entretenimiento y recreativas 8707 7481 6370 8536 9696 9313 6683 7541
Otras actividades de servicios 86763 78406 80063 84547 81855 87966 68374 80642
Servicio doméstico 120949 127479 132345 134577 134700 132325 97723 129464
Total 1922169 1946185 1966837 1997818 2029266 2071821 1744177 2048746

Importación de archivos SPSS, SAS y Stata.

knitr::include_graphics("E:/SERVICIO SOCIAL/clase_import_export_data/6.jpg")

knitr::include_graphics("E:/SERVICIO SOCIAL/clase_import_export_data/7.png")

knitr::include_graphics("E:/SERVICIO SOCIAL/clase_import_export_data/8.png")

Para realizar la importación de estos tipos de archivo es necesaria la librería “haven”. La forma general del comando para cado tipo de archivo es la siguientE:

En los tres casos, se mentiene la misma estructura y elementos, unicamente se modifica el nombre de la función principal según sea el tipo de archivo que se quiera importar.

  1. ejemplo_spss <- read_sav(“Ruta de acceso del archivo”,col_types = NULL, na = c(““,”NA”), encoding = “UTF-8”)

  2. ejemplo_sas <- read_sas(“ruta/del/archivo.sas7bdat”,col_types = NULL,na = c(““,”NA”),encoding = “UTF-8”)

  3. ejemplo_stata<- read_dta(“ruta/del/archivo.dta”,col_types = NULL,na = c(““,”NA”),encoding = “UTF-8”)

  • col_types = NULL: Permite especificar manualmente los tipos de datos de las columnas. Si se establece en NULL, Haven intentará adivinar los tipos de datos automáticamente, en caso contrario Puede ser un objeto de tipo cols() de readr o NULL para la adivinación automática.

  • na = c(““,”NA”): Detalla qué valores deben ser tratados como valores NA (no disponibles) en R. Por defecto, este vector incluye cadenas vacías y “NA”, lo que significa que estos valores se convertirán en NA en el dataframe.

  • encoding = “UTF-8”: Permite especificar la codificación del archivo que se está leyendo. La codificación “UTF-8” es común y permite manejar caracteres especiales.

Ejemplo de importación de SPSS,SAS Y STATA.

library(haven)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/SPSS/CRECIMIENTO.sav"

ejemplo_spss <- read_sav(ruta_acceso)
  ejemplo_spss %>% 
    head(10) %>% 
  kable(caption = "Datos",
        align = "c") %>%  
  kable_minimal(html_font = "Arial",
                font_size = 14)
Datos
SUJETO GÉNERO EDAD DISTANCI INDICE
1 M 8 21.0 1
1 M 10 20.0 1
1 M 12 21.5 1
1 M 14 23.0 1
2 M 8 21.0 2
2 M 10 21.5 2
2 M 12 24.0 2
2 M 14 25.5 2
3 M 8 20.5 3
3 M 10 24.0 3
library(haven)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/SAS/inequality.sas7bdat"
ejemplo_sas <- read_sas(ruta_acceso)
  ejemplo_sas %>% 
    head(10) %>% 
  kable(caption = "Datos",
        align = "c") %>%  
  kable_minimal(html_font = "Arial", 
                font_size = 14)
Datos
year aus_gdp aus_gwth aus_share aus_tax ca_gdp ca_gwth ca_share ca_tax nz_gdp nz_gwth nz_share nz_tax us_gdp us_gwth us_share us_tax
1 4910.8 3.0387550 11.63 11.1 3357.0 -13.0640700 17.60 4.2 5128.1 -8.2824440 15.47 10.5 5322.7 -4.1350910 15.47 12
2 5063.7 -0.7484465 10.68 11.0 3793.1 12.9917800 15.17 4.2 4841.1 -2.7564010 14.43 8.2 5539.8 4.0789210 16.29 10
3 5192.0 2.6141850 11.76 10.7 3976.0 4.8195390 14.38 4.2 5144.5 4.6190750 14.99 6.8 6164.2 11.2702700 14.99 10
4 5417.4 3.2200100 11.67 9.3 3977.0 0.0267036 14.53 3.2 5142.9 0.7000252 14.92 5.8 6232.6 1.1088490 16.32 11
5 5553.1 -1.0451770 11.31 9.1 4340.3 9.1338820 13.18 2.0 5291.6 0.2855066 15.16 5.7 6282.4 0.8001250 17.60 6
6 5572.6 -2.7370840 11.07 9.4 4497.1 3.6122480 14.01 1.8 4904.8 -6.6523310 14.87 5.6 6602.4 5.0939510 18.01 7
7 5543.8 -2.8108530 11.68 8.2 4847.0 7.7815180 14.69 1.6 4682.7 -1.0733030 14.64 6.9 6576.5 -0.3929344 18.68 7
8 5451.8 -2.9039020 11.85 8.5 5171.6 6.6967810 15.32 2.4 5140.9 7.7950720 15.62 7.1 6569.3 -0.1087737 19.60 6
9 5263.0 -4.1541770 10.67 8.5 5065.4 -2.0524310 15.64 2.4 5262.2 0.2996396 15.05 6.9 6898.7 5.0138440 18.42 7
10 4708.3 -5.6814450 9.75 10.3 4810.6 -5.0309770 16.10 1.6 4960.1 -6.7063940 14.55 6.8 6212.7 -9.9440080 16.42 4
library(haven)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/archivos_presentacion/Stata/hprice1.dta"

ejemplo_dta <- read_dta(ruta_acceso)
  ejemplo_dta %>% 
    head(10) %>% 
  kable(caption = "Datos",
        align = "c") %>%  
  kable_minimal(html_font = "Arial",
                font_size = 14)
Datos
price assess bdrms lotsize sqrft colonial lprice lassess llotsize lsqrft
300.000 349.1 4 6126 2438 1 5.703783 5.855359 8.720297 7.798934
370.000 351.5 3 9903 2076 1 5.913503 5.862210 9.200593 7.638198
191.000 217.7 3 5200 1374 0 5.252274 5.383118 8.556414 7.225481
195.000 231.8 3 4600 1448 1 5.273000 5.445875 8.433811 7.277938
373.000 319.1 4 6095 2514 1 5.921578 5.765504 8.715224 7.829630
466.275 414.5 5 8566 2754 1 6.144775 6.027073 9.055556 7.920810
332.500 367.8 3 9000 2067 1 5.806640 5.907539 9.104980 7.633853
315.000 300.2 3 6210 1731 1 5.752573 5.704449 8.733916 7.456455
206.000 236.1 3 6000 1767 0 5.327876 5.464255 8.699514 7.477038
240.000 256.3 3 2892 1890 0 5.480639 5.546349 7.969704 7.544332

Exportación de datos.

knitr::include_graphics("E:/SERVICIO SOCIAL/clase_import_export_data/9.jpg")

Tipo de archivos que es posible exportar en R studio:

  • Archivos .Rdata

  • Archivos .rds

  • Archivos de texto

  • Archivos de Excel

  • Archivos de SPSS

  • Archivos de SAS

  • Archivos de Stata

Exportación de archivos .Rdata.

La forma general del comando para exportar archivos en .Rdata es la siguientE:

La forma general del comando para exportar archivos en .Rdata es la siguientE:

save(ejemplo, file = “Ruta de acceso.RData”)

  • ejemplo: Hace referencia al nombre del archivo que se desea exportar.

  • File: Se debe de especificar la ruta de acceso donde se desea que se guarde el archivo exportado.

Ejemplo de exportación de archivos .Rdata

ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.RData"

save(ejemplotxt,
     file=ruta_acceso)

Exportación de archivos tipo .rds

El comando general para exportar archivos tipo .rds es el siguientE:

saveRDS(file)

  • filE: Indica la ruta de acceso en la que se encuentra el archivo que se desea importar.

Es posible digitarlo directamente o almacenar previamente la ruta de acceso en una variable y luego indicarla dentro del paréntesis.

Ejemplo de exportación de archivos tipo .rds

ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.rds"
saveRDS(ejemplo_dta,
        file = ruta_acceso)

Exportación de archivos de texto.

Para exportar una data en archivo de texto se utiliza la libreria “readR”

La forma general del comando utilizado para exportar un archivo de tipo texto es la siguientE:

export_texto<-write_x(x, file, na = “NA”, append, col_names)

En el apartado de write_x se puede plantear de distintas maneras según las características del archivo:

  • write_delim(x, file, delim = ” “)

  • write_csv(x, file)

  • write_csv2(x, file)

  • write_tsv(x,file)

Describiendo cada elemento de la función:

  • x: Este es el objeto que se desea exportar. Es la variable en el que se ha almacenado el archivo de texto deseado.

  • file: Especifica el nombre del archivo en el que se guardarán los datos. Puede incluir la ruta del directorio donde se desea guardar el archivo.

  • na = “NA”: Define cómo se representarán los valores faltantes en el archivo. En este caso, los valores NA se exportarán como “NA”.

  • append:Este argumento indica si los datos se agregarán al archivo existente (TRUE) o si se sobrescribirá el archivo (FALSE).

  • col_names: Este argumento determina si los nombres de las columnas se incluirán en el archivo exportado. Puede ser TRUE (incluir nombres) o FALSE (no incluir).

Ejemplo de exportación de archivos de texto.

library(readr)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.csv"

write_csv(ejemplo_spss,
          file =ruta_acceso)

Exportación de archivos Excel

Para realizar la exportación en formato de Excel se requiere la utilización de la librería “writexl”

La forma general del comando utilizado para exportar un archivo de Excel es la siguientE:

export_excel<-write_xlsx(x,path = ,col_names = TRUE,format_headers = TRUE)

x: Este es el primer argumento y se refiere al objeto que deseas exportar a un archivo Excel.

path: Este argumento especifica la ubicación y el nombre del archivo que se va a crear.

col_names = TRUE: Indica si se deben incluir los nombres de las columnas del data frame en la primera fila del archivo Excel. Si se establece en TRUE, los nombres de las columnas se incluirán. Si se establece en FALSE, no se incluirán.

format_headers = TRUE: Determina el formato de los encabezados en el archivo Excel. Si se establece en TRUE, los encabezados se formatearán de manera adecuada. Si se establece en FALSE, los encabezados se escribirán sin formato especial.

Ejemplo de exportación de archivos Excel.

library(writexl)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.xlsx"
write_xlsx(ejemplo_dta,
           path =ruta_acceso)

Exportación de archivos SPSS, SAS y STATA

Para realizar la Exportación de estos tipos de archivo es necesaria la librería “haven”. La forma general del comando para cada tipo de archivo es la siguientE:

En los tres casos, se mentiene la misma estructura y elementos, unicamente se modifica el nombre de la función principal según sea el tipo de archivo que se quiera exportar.

  1. ejemplo_spss <- write_sav(nombre_archivo,“ruta de acceso y nombre de archivo”)

  2. ejemplo_sas <- write_sas(nombre_archivo,“ruta de acceso y nombre de archivo”)

  3. ejemplo_stata<- write_dta(nombre_archivo,“ruta de acceso y nombre de archivo”)

nombre_archivo: En este apartado se coloca el archivo que se desea exportar.

“ruta de acceso y nombre de archivo”:En este apartado se detalla la ruta de acceso en la que se desee almacenar el archivo junto a su nombre.

Ejemplo de exportación de archivos SPSS, SAS y STATA

library(haven)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.sav"
write_sav(ejemplotxt,
          path =ruta_acceso)
library(haven)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.sas"
write_sas(ejemplotxt,
          path =ruta_acceso)
library(haven)
ruta_acceso<-"E:/SERVICIO SOCIAL/clase_import_export_data/Export_datos/datos.dta"
write_dta(ejemplotxt,
          path =ruta_acceso)