rpradosiqueira / sidrar

A R interface to IBGE's SIDRA API
87 stars 11 forks source link

The data.frame returned by get_sidra have a list inside list structure that can cause problems #1

Closed fernandovmacedo closed 7 years ago

fernandovmacedo commented 7 years ago

Each row appear to be a list in the resulting data.frame what cause trouble with a lot of functions that handle data.frames. Bellow is an example:

`library(sidrar)

tmp <- get_sidra(x = 1419, variable = 63, period = c(last = "12"), geo = "City", geo.filter = 5002704, classific = "c315", category = list(7169), header = FALSE, format = 3)

tibble::as_tibble(tmp)`

A tibble: 12 x 7

     D1C       D1N       D2N       D3N       D4N        MN     V
  <list>    <list>    <list>    <list>    <list>    <list> <dbl>

1 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.73 2 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.45 3 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.74 4 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.18 5 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.48 6 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.53 7 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.43 8 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.70 9 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.56 10 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.24 11 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> 0.14 12 <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> <chr [1]> -0.13

Others function like summary(tmp) also doesn't work properly.

I havent looked much into the code, but the solution probably is simple. A quick fix to solve this in a script is the function dplyr::unnest that can be used like this:

tibble::as_tibble(unnest(tmp))

A tibble: 12 x 7

   V     D1C               D1N            D2N                    D3N          D4N         MN
1 0.73 5002704 Campo Grande - MS maio 2016 IPCA - Variação mensal Índice geral Percentual 2 0.45 5002704 Campo Grande - MS junho 2016 IPCA - Variação mensal Índice geral Percentual 3 0.74 5002704 Campo Grande - MS julho 2016 IPCA - Variação mensal Índice geral Percentual 4 0.18 5002704 Campo Grande - MS agosto 2016 IPCA - Variação mensal Índice geral Percentual 5 0.48 5002704 Campo Grande - MS setembro 2016 IPCA - Variação mensal Índice geral Percentual 6 0.53 5002704 Campo Grande - MS outubro 2016 IPCA - Variação mensal Índice geral Percentual 7 0.43 5002704 Campo Grande - MS novembro 2016 IPCA - Variação mensal Índice geral Percentual 8 0.70 5002704 Campo Grande - MS dezembro 2016 IPCA - Variação mensal Índice geral Percentual 9 0.56 5002704 Campo Grande - MS janeiro 2017 IPCA - Variação mensal Índice geral Percentual 10 0.24 5002704 Campo Grande - MS fevereiro 2017 IPCA - Variação mensal Índice geral Percentual 11 0.14 5002704 Campo Grande - MS março 2017 IPCA - Variação mensal Índice geral Percentual 12 -0.13 5002704 Campo Grande - MS abril 2017 IPCA - Variação mensal Índice geral Percentual
rpradosiqueira commented 7 years ago

Fixed it. Thank you @fernandovmacedo .