Skip to content

Commit

Permalink
rbindlist_instead_of_rbind
Browse files Browse the repository at this point in the history
  • Loading branch information
danielredondo authored Oct 23, 2019
1 parent dc6782a commit cf44596
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 108 deletions.
5 changes: 3 additions & 2 deletions 01_introduccion.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ Cargamos los paquetes necesarios:
library(httr)
library(rlist)
library(dplyr)
library(data.table)
```

```{r}
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand Down
37 changes: 19 additions & 18 deletions 01_introduccion.html
Original file line number Diff line number Diff line change
Expand Up @@ -1628,7 +1628,8 @@ <h3>2.1. Primeros pasos</h3>
<p>Cargamos los paquetes necesarios:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb6-1"><a href="#cb6-1"></a><span class="kw">library</span>(httr)</span>
<span id="cb6-2"><a href="#cb6-2"></a><span class="kw">library</span>(rlist)</span>
<span id="cb6-3"><a href="#cb6-3"></a><span class="kw">library</span>(dplyr)</span></code></pre></div>
<span id="cb6-3"><a href="#cb6-3"></a><span class="kw">library</span>(dplyr)</span>
<span id="cb6-4"><a href="#cb6-4"></a><span class="kw">library</span>(data.table)</span></code></pre></div>
<div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb7-1"><a href="#cb7-1"></a>url &lt;-<span class="st"> &quot;http://servicios.ine.es/wstempus/js/ES/DATOS_TABLA/t15/p417/a2017/l0/01007.px?tip=AM&quot;</span></span></code></pre></div>
<p>Usamos la función <code>GET</code> del paquete <code>httr</code>, usando como único parámetro la URL obtenida en el paso anterior.</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb8-1"><a href="#cb8-1"></a>defunciones_json &lt;-<span class="st"> </span><span class="kw">GET</span>(url)</span></code></pre></div>
Expand All @@ -1644,7 +1645,7 @@ <h3>2.2. Pre-procesamiento</h3>
<p>La información debe ser pre-procesada antes de poder ser usada. Vemos la información cruda:</p>
<div class="sourceCode" id="cb13"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb13-1"><a href="#cb13-1"></a>defunciones_json</span></code></pre></div>
<pre><code>## 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
Expand Down Expand Up @@ -1809,17 +1810,17 @@ <h3>2.2. Pre-procesamiento</h3>
<span id="cb23-8"><a href="#cb23-8"></a><span class="st"> </span><span class="kw">cbind</span>(<span class="dt">s_gest =</span> dato.i<span class="op">$</span>MetaData[[<span class="dv">3</span>]]<span class="op">$</span>Codigo)</span>
<span id="cb23-9"><a href="#cb23-9"></a> <span class="kw">ifelse</span>(i <span class="op">==</span><span class="st"> </span><span class="dv">1</span>,</span>
<span id="cb23-10"><a href="#cb23-10"></a> defunciones &lt;-<span class="st"> </span>defunciones.i,</span>
<span id="cb23-11"><a href="#cb23-11"></a> defunciones &lt;-<span class="st"> </span><span class="kw">rbind</span>(defunciones, defunciones.i))</span>
<span id="cb23-11"><a href="#cb23-11"></a> defunciones &lt;-<span class="st"> </span><span class="kw">rbindlist</span>(<span class="kw">list</span>(defunciones, defunciones.i)))</span>
<span id="cb23-12"><a href="#cb23-12"></a>}</span>
<span id="cb23-13"><a href="#cb23-13"></a></span>
<span id="cb23-14"><a href="#cb23-14"></a><span class="kw">head</span>(defunciones)</span></code></pre></div>
<pre><code>## 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</code></pre>
<pre><code>## 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</code></pre>
<p>También podríamos haber descargado las etiquetas de las variables, en lugar de los códigos:</p>
<div class="sourceCode" id="cb25"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb25-1"><a href="#cb25-1"></a>n &lt;-<span class="st"> </span><span class="kw">length</span>(defunciones_contenido)</span>
<span id="cb25-2"><a href="#cb25-2"></a></span>
Expand All @@ -1831,17 +1832,17 @@ <h3>2.2. Pre-procesamiento</h3>
<span id="cb25-8"><a href="#cb25-8"></a><span class="st"> </span><span class="kw">cbind</span>(<span class="dt">s_gest =</span> dato.i<span class="op">$</span>MetaData[[<span class="dv">3</span>]]<span class="op">$</span>Nombre)</span>
<span id="cb25-9"><a href="#cb25-9"></a> <span class="kw">ifelse</span>(i <span class="op">==</span><span class="st"> </span><span class="dv">1</span>,</span>
<span id="cb25-10"><a href="#cb25-10"></a> defunciones &lt;-<span class="st"> </span>defunciones.i,</span>
<span id="cb25-11"><a href="#cb25-11"></a> defunciones &lt;-<span class="st"> </span><span class="kw">rbind</span>(defunciones, defunciones.i))</span>
<span id="cb25-11"><a href="#cb25-11"></a> defunciones &lt;-<span class="st"> </span><span class="kw">rbindlist</span>(<span class="kw">list</span>(defunciones, defunciones.i)))</span>
<span id="cb25-12"><a href="#cb25-12"></a>}</span>
<span id="cb25-13"><a href="#cb25-13"></a></span>
<span id="cb25-14"><a href="#cb25-14"></a><span class="kw">head</span>(defunciones)</span></code></pre></div>
<pre><code>## 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</code></pre>
<pre><code>## 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</code></pre>
</div>
<div id="ejemplo-de-uso" class="section level3">
<h3>2.3. Ejemplo de uso</h3>
Expand Down
3 changes: 2 additions & 1 deletion 02_descarga_avanzada.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ editor_options:
library(httr)
library(dplyr)
library(rlist)
library(data.table)
```

```{r}
Expand Down Expand Up @@ -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)))
}
```

Expand Down
Loading

0 comments on commit cf44596

Please sign in to comment.