From cf44596cd4954344d478179daf195659d9bf66ea Mon Sep 17 00:00:00 2001 From: Daniel Redondo Date: Wed, 23 Oct 2019 12:26:34 +0200 Subject: [PATCH] rbindlist_instead_of_rbind --- 01_introduccion.Rmd | 5 +- 01_introduccion.html | 37 ++++---- 02_descarga_avanzada.Rmd | 3 +- 02_descarga_avanzada.html | 179 ++++++++++++++++++++------------------ 4 files changed, 116 insertions(+), 108 deletions(-) diff --git a/01_introduccion.Rmd b/01_introduccion.Rmd index 24f1f0c..fd2ebc2 100644 --- a/01_introduccion.Rmd +++ b/01_introduccion.Rmd @@ -85,6 +85,7 @@ Cargamos los paquetes necesarios: library(httr) library(rlist) library(dplyr) +library(data.table) ``` ```{r} @@ -146,7 +147,7 @@ for(i in 1:n){ cbind(s_gest = dato.i$MetaData[[3]]$Codigo) ifelse(i == 1, defunciones <- defunciones.i, - defunciones <- rbind(defunciones, defunciones.i)) + defunciones <- rbindlist(list(defunciones, defunciones.i))) } head(defunciones) @@ -166,7 +167,7 @@ for(i in 1:n){ cbind(s_gest = dato.i$MetaData[[3]]$Nombre) ifelse(i == 1, defunciones <- defunciones.i, - defunciones <- rbind(defunciones, defunciones.i)) + defunciones <- rbindlist(list(defunciones, defunciones.i))) } head(defunciones) diff --git a/01_introduccion.html b/01_introduccion.html index aa66b50..453411c 100644 --- a/01_introduccion.html +++ b/01_introduccion.html @@ -1628,7 +1628,8 @@

2.1. Primeros pasos

Cargamos los paquetes necesarios:

library(httr)
 library(rlist)
-library(dplyr)
+library(dplyr) +library(data.table)
url <- "http://servicios.ine.es/wstempus/js/ES/DATOS_TABLA/t15/p417/a2017/l0/01007.px?tip=AM"

Usamos la función GET del paquete httr, usando como único parámetro la URL obtenida en el paso anterior.

defunciones_json <- GET(url)
@@ -1644,7 +1645,7 @@

2.2. Pre-procesamiento

La información debe ser pre-procesada antes de poder ser usada. Vemos la información cruda:

defunciones_json
## Response [http://servicios.ine.es/wstempus/js/ES/DATOS_TABLA/t15/p417/a2017/l0/01007.px?tip=AM]
-##   Date: 2019-10-14 06:37
+##   Date: 2019-10-23 10:02
 ##   Status: 200
 ##   Content-Type: application/json;charset=UTF-8
 ##   Size: 1.48 MB
@@ -1809,17 +1810,17 @@ 

2.2. Pre-procesamiento

cbind(s_gest = dato.i$MetaData[[3]]$Codigo) ifelse(i == 1, defunciones <- defunciones.i, - defunciones <- rbind(defunciones, defunciones.i)) + defunciones <- rbindlist(list(defunciones, defunciones.i))) } head(defunciones)
-
##   Valor                  codigo       sexo           s_gest
-## 1  1274 0193ixxiitodaslascausas ambossexos            total
-## 2   196 0193ixxiitodaslascausas ambossexos menosde28semanas
-## 3   229 0193ixxiitodaslascausas ambossexos   de28a31semanas
-## 4   355 0193ixxiitodaslascausas ambossexos   de32a36semanas
-## 5   322 0193ixxiitodaslascausas ambossexos   de37a41semanas
-## 6     0 0193ixxiitodaslascausas ambossexos    42semanasymas
+
##    Valor                  codigo       sexo           s_gest
+## 1:  1274 0193ixxiitodaslascausas ambossexos            total
+## 2:   196 0193ixxiitodaslascausas ambossexos menosde28semanas
+## 3:   229 0193ixxiitodaslascausas ambossexos   de28a31semanas
+## 4:   355 0193ixxiitodaslascausas ambossexos   de32a36semanas
+## 5:   322 0193ixxiitodaslascausas ambossexos   de37a41semanas
+## 6:     0 0193ixxiitodaslascausas ambossexos    42semanasymas

También podríamos haber descargado las etiquetas de las variables, en lugar de los códigos:

n <- length(defunciones_contenido)
 
@@ -1831,17 +1832,17 @@ 

2.2. Pre-procesamiento

cbind(s_gest = dato.i$MetaData[[3]]$Nombre) ifelse(i == 1, defunciones <- defunciones.i, - defunciones <- rbind(defunciones, defunciones.i)) + defunciones <- rbindlist(list(defunciones, defunciones.i))) } head(defunciones)
-
##   Valor                        codigo        sexo              s_gest
-## 1  1274 01-93 I-XXII.Todas las causas Ambos sexos               Total
-## 2   196 01-93 I-XXII.Todas las causas Ambos sexos Menos de 28 semanas
-## 3   229 01-93 I-XXII.Todas las causas Ambos sexos  De 28 a 31 semanas
-## 4   355 01-93 I-XXII.Todas las causas Ambos sexos  De 32 a 36 semanas
-## 5   322 01-93 I-XXII.Todas las causas Ambos sexos  De 37 a 41 semanas
-## 6     0 01-93 I-XXII.Todas las causas Ambos sexos    42 semanas y más
+
##    Valor                        codigo        sexo              s_gest
+## 1:  1274 01-93 I-XXII.Todas las causas Ambos sexos               Total
+## 2:   196 01-93 I-XXII.Todas las causas Ambos sexos Menos de 28 semanas
+## 3:   229 01-93 I-XXII.Todas las causas Ambos sexos  De 28 a 31 semanas
+## 4:   355 01-93 I-XXII.Todas las causas Ambos sexos  De 32 a 36 semanas
+## 5:   322 01-93 I-XXII.Todas las causas Ambos sexos  De 37 a 41 semanas
+## 6:     0 01-93 I-XXII.Todas las causas Ambos sexos    42 semanas y más

2.3. Ejemplo de uso

diff --git a/02_descarga_avanzada.Rmd b/02_descarga_avanzada.Rmd index 0f4a6f4..5d69012 100644 --- a/02_descarga_avanzada.Rmd +++ b/02_descarga_avanzada.Rmd @@ -25,6 +25,7 @@ editor_options: library(httr) library(dplyr) library(rlist) +library(data.table) ``` ```{r} @@ -83,7 +84,7 @@ for(i in 1:n){ cbind(edad = division[1]) %>% cbind(sexo = division[3]) %>% cbind(prov = division[2]) - ifelse(i == 1, poblacion <- poblacion.i, poblacion <- rbind(poblacion, poblacion.i)) + ifelse(i == 1, poblacion <- poblacion.i, poblacion <- rbindlist(list(poblacion, poblacion.i))) } ``` diff --git a/02_descarga_avanzada.html b/02_descarga_avanzada.html index 4c40379..0634676 100644 --- a/02_descarga_avanzada.html +++ b/02_descarga_avanzada.html @@ -1280,9 +1280,9 @@