Turn level to Variable

1

I would like to create a new column, transforming Tab1612SojaRend$Nível.Territorial the levels "Great Region" and "Federation Unit" into columns. The Federation Unit has to be in the same column of the cities according to the state. Another point that needed to be to eliminate the state variable "Municipality, Great Region and Federation Unit".

library(sidrar)
Tab1612SojaRend <-get_sidra(1612,variable = 112, period = c("last" = 22),
                        geo = c("Region","State","City"),
                        geo.filter = list("Region" = 3,"Region" = 3,"Region" = 3),
                        classific = 'c81',
                        category = list(2713))

Tab1612SojaRend$Nível.Territorial <- 
as.factor(Tab1612SojaRend$Nível.Territorial)

dput(Tab1612SojaRendsudeste[c(1:10, 101:110, 24001:24010), ])
structure(list('Nível Territorial (Código)' = c("6", "6", "6", 
"6", "6", "6", "6", "6", "6", "6", "6", "6", "6", "6", "6", "6", 
"6", "6", "6", "6", "6", "6", "6", "6", "6", "6", "6", "6", "6", 
"6"), 'Nível Territorial' = c("Município", "Município", "Município", 
"Município", "Município", "Município", "Município", "Município", 
"Município", "Município", "Município", "Município", "Município", 
"Município", "Município", "Município", "Município", "Município", 
"Município", "Município", "Município", "Município", "Município", 
"Município", "Município", "Município", "Município", "Município", 
"Município", "Município"), 'Município, Grande Região e Unidade da Federação 
(Código)' = c("3100104", 
"3100104", "3100104", "3100104", "3100104", "3100104", "3100104", 
"3100104", "3100104", "3100104", "3100500", "3100500", "3100500", 
"3100500", "3100500", "3100500", "3100500", "3100500", "3100500", 
"3100500", "3506300", "3506300", "3506359", "3506359", "3506359", 
"3506359", "3506359", "3506359", "3506359", "3506359"), 'Município, Grande 
 Região e Unidade da Federação' = c("Abadia dos Dourados - MG", 
"Abadia dos Dourados - MG", "Abadia dos Dourados - MG", "Abadia dos Dourados 
 - MG", 
"Abadia dos Dourados - MG", "Abadia dos Dourados - MG", "Abadia dos Dourados 
 - MG", 
"Abadia dos Dourados - MG", "Abadia dos Dourados - MG", "Abadia dos Dourados 
 - MG", 
"Açucena - MG", "Açucena - MG", "Açucena - MG", "Açucena - MG", 
"Açucena - MG", "Açucena - MG", "Açucena - MG", "Açucena - MG", 
"Açucena - MG", "Açucena - MG", "Bernardino de Campos - SP", 
"Bernardino de Campos - SP", "Bertioga - SP", "Bertioga - SP", 
"Bertioga - SP", "Bertioga - SP", "Bertioga - SP", "Bertioga - SP", 
"Bertioga - SP", "Bertioga - SP"), 'Ano (Código)' = c("1996", 
"1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", 
"2005", "2008", "2009", "2010", "2011", "2012", "2013", "2014", 
"2015", "2016", "2017", "2016", "2017", "1996", "1997", "1998", 
"1999", "2000", "2001", "2002", "2003"), Ano = c("1996", "1997", 
"1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", 
"2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", 
"2016", "2017", "2016", "2017", "1996", "1997", "1998", "1999", 
"2000", "2001", "2002", "2003"), 'Variável (Código)' = c("112", 
"112", "112", "112", "112", "112", "112", "112", "112", "112", 
"112", "112", "112", "112", "112", "112", "112", "112", "112", 
"112", "112", "112", "112", "112", "112", "112", "112", "112", 
"112", "112"), Variável = c("Rendimento médio da produção", "Rendimento 
 médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção", 
"Rendimento médio da produção", "Rendimento médio da produção"
 ), 'Produto das lavouras temporárias (Código)' = c("2713", "2713", 
"2713", "2713", "2713", "2713", "2713", "2713", "2713", "2713", 
"2713", "2713", "2713", "2713", "2713", "2713", "2713", "2713", 
"2713", "2713", "2713", "2713", "2713", "2713", "2713", "2713", 
"2713", "2713", "2713", "2713"), 'Produto das lavouras temporárias' = 
c("Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)", "Soja (em grão)", "Soja (em grão)", "Soja (em grão)", 
"Soja (em grão)"), 'Unidade de Medida (Código)' = c("33", "33", 
"33", "33", "33", "33", "33", "33", "33", "33", "33", "33", "33", 
"33", "33", "33", "33", "33", "33", "33", "33", "33", "33", "33", 
"33", "33", "33", "33", "33", "33"), 'Unidade de Medida' = c("Quilogramas 
 por 
 Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare", "Quilogramas por 
Hectare", 
"Quilogramas por Hectare", "Quilogramas por Hectare"), Valor = c(1620, 
2202, 2200, 2400, 2800, 2880, 2700, 2800, 2429, 2700, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, 2550, 2550, NA, NA, NA, NA, NA, 
NA, NA, NA)), row.names = c(2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L, 
24002L, 24003L, 24004L, 24005L, 24006L, 24007L, 24008L, 24009L, 
24010L, 24011L), class = "data.frame")
    
asked by anonymous 11.12.2018 / 03:19

1 answer

1

As the SIDRA API was unstable or very slow, I made this small change in the code (I removed the counties from the query) to have similar data to work on.

library(sidrar)
Tab1612SojaRend <- get_sidra(1612,variable = 112, period = c("last" = 22),
                             geo = c("Region","State"),
                             geo.filter = list("Region" = 3,"Region" = 3),
                             # geo = "Region", geo.filter = list("Region" = 3),
                             classific = 'c81',
                             category = list(2713))

To do what you want, you can use the spread() function to spread the Nível Territorial values across multiple columns.

library(tidyverse)
resp1 <- Tab1612SojaRend %>% 
  spread('Nível Territorial', Valor)

Now, you always have to ask: Is this really what you want to do?

Let's take a look at resp1 :

glimpse(resp1)
Observations: 110
Variables: 13
$ 'Nível Territorial (Código)'                    <chr> "2", "2", "2", "2", "2", "2",...
$ 'Grande Região e Unidade da Federação (Código)' <chr> "3", "3", "3", "3", "3", "3",...
$ 'Grande Região e Unidade da Federação'          <chr> "Sudeste", "Sudeste", "Sudest...
$ 'Ano (Código)'                                  <chr> "1996", "1997", "1998", "1999...
$ Ano                                             <chr> "1996", "1997", "1998", "1999...
$ 'Variável (Código)'                             <chr> "112", "112", "112", "112", "...
$ Variável                                        <chr> "Rendimento médio da produção...
$ 'Produto das lavouras temporárias (Código)'     <chr> "2713", "2713", "2713", "2713...
$ 'Produto das lavouras temporárias'              <chr> "Soja (em grão)", "Soja (em g...
$ 'Unidade de Medida (Código)'                    <chr> "33", "33", "33", "33", "33",...
$ 'Unidade de Medida'                             <chr> "Quilogramas por Hectare", "Q...
$ 'Grande Região'                                 <dbl> 2072, 2330, 2114, 2518, 2316,...
$ 'Unidade da Federação'                          <dbl> NA, NA, NA, NA, NA, NA, NA, N...

See that the created variables intersperse between Grande Região have value and Unidade da Federação be NA and vice versa.

any(!is.na(resp1$'Grande Região') & !is.na(resp1$'Unidade da Federação'))
# [1] FALSE

It happens that we break the third principle of tables tidy : Each observational unit should have its own table, and here we are mixing Federation Units with Regions.

For these reasons, I would find it better to work as follows:

resp2 <- split(Tab1612SojaRend, Tab1612SojaRend$'Nível Territorial')
regioes <- resp2[[1]]
ufs <- resp2[[2]]

Another way is to change the API call to return an observational unit (regions / UFs / counties) at a time.

    
11.12.2018 / 14:59
___ ___ erkimt Error generating XML ______ qstntxt ___

I made a system in PHP to display XML file, but is giving the following error:

This page contains the Following Errors: error on line 29 at column 1: Extra content at the end of the document Below is a rendering of the page up to the first error.

(A picture for you to see that even what is the bench he brings me):

Myindex.phpfile:

%pre%

Myconfig.phpfile:

%pre%

Myconexao.phpfile:

%pre%    
_________azszpr349229

As the very description of error states, you are inserting extra others information after creating the XML from the line %code% .

To parse the XML correctly, remove all of the line is %code% down. If you remove the line% %code% the error disappears, but you will result in a normal HTML page (although invalid).

    
___ Canvas issues within a WebView in react native [pending]