<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Matheus Valentim</title>
    <description>The latest articles on DEV Community by Matheus Valentim (@mavalentim).</description>
    <link>https://dev.to/mavalentim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F622614%2Ff3d9f851-a2da-4b67-ac2a-987a1ca07954.jpeg</url>
      <title>DEV Community: Matheus Valentim</title>
      <link>https://dev.to/mavalentim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mavalentim"/>
    <language>en</language>
    <item>
      <title>Explorando o Censo Escolar com a Base dos Dados</title>
      <dc:creator>Matheus Valentim</dc:creator>
      <pubDate>Fri, 04 Jun 2021 03:46:07 +0000</pubDate>
      <link>https://dev.to/basedosdados/explorando-o-censo-escolar-com-a-base-dos-dados-1a89</link>
      <guid>https://dev.to/basedosdados/explorando-o-censo-escolar-com-a-base-dos-dados-1a89</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Nesse texto, vamos dissecar o &lt;strong&gt;novo&lt;/strong&gt; conjunto de dados da Base dos Dados: o &lt;strong&gt;Censo Escolar&lt;/strong&gt;. Primeiro, vamos introduzir as &lt;strong&gt;quatro&lt;/strong&gt; diferentes tabelas da base, apresentando algumas de suas variáveis. Depois, vamos mostrar alguns pontos de contato interessantes com outras tabelas disponíveis em nosso datalake público e perguntas que podem surgir dessas interações. &lt;/p&gt;

&lt;h2&gt;
  
  
  O Censo - e suas dificuldades
&lt;/h2&gt;

&lt;p&gt;O Censo Escolar é uma pesquisa &lt;strong&gt;anual&lt;/strong&gt;, onde cada escola do país responde a diversas perguntas sobre a própria escola, sobre as turmas, os professores e os alunos que ali frequentam. O Censo tem microdados desde 1995 e em 2007 assumiu um novo formato digital. Há indícios de que a pesquisa ocorre desde a década de 30. Aqui na Base dos Dados, optamos por disponibilizar, inicialmente, valores &lt;strong&gt;desde 2009 até 2020&lt;/strong&gt;. O período é o mais uniforme da pesquisa, e foi quando ela manteve o mesmo formato, o que facilita e corrobora com a compatibilização entre diferentes anos.&lt;/p&gt;

&lt;p&gt;A disponibilização dos dados do Censo, assim como de outras bases de educação, vêm do &lt;a href="http://inep.gov.br/dados"&gt;Plano Inep Dados Abertos&lt;/a&gt;. Porém, utilizar as bases originais do Censo tem vários obstáculos:&lt;/p&gt;

&lt;p&gt;-Você terá que baixar &lt;strong&gt;cada ano individualmente&lt;/strong&gt; em um arquivo compactado, cada um com aproximadamente &lt;strong&gt;10gb&lt;/strong&gt;&lt;br&gt;
-Cada base tem seu próprio conjunto de variáveis e você terá que consultar os vários dicionários, já que uma &lt;strong&gt;mesma&lt;/strong&gt; variável recebe &lt;strong&gt;vários nomes diferentes&lt;/strong&gt; ao longo do período.&lt;br&gt;
-Os dicionários &lt;strong&gt;não&lt;/strong&gt; são muito claros sobre a constância das variáveis: em muitos casos &lt;strong&gt;é necessário abrir a base para verificar a existência&lt;/strong&gt; de uma dada variável.&lt;br&gt;
-O período de 2009 até 2020 soma mais de 100gb se for aberto inteiro no seu computador.&lt;/p&gt;

&lt;p&gt;Ao invés de enfrentar tudo isso, você pode usar nossa versão já limpa e harmonizada, baixando via BigQuery ou abrindo as tabelas &lt;a href="https://dev.to/basedosdados/como-usar-a-biblioteca-basedosdados-no-r-capitulo-1-46kb"&gt;direto no R&lt;/a&gt; ou &lt;a href="https://dev.to/basedosdados/base-dos-dados-python-101-44lc"&gt;no Python&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  O Censo Escolar pela Base dos Dados
&lt;/h2&gt;

&lt;p&gt;Com as suas 4 tabelas, o nosso dataset do Censo Escolar replica a arquitetura da base original, disponibilizando diferentes tabelas para diferentes níveis de agregação. Temos uma base a nível de &lt;strong&gt;escola&lt;/strong&gt;, uma a nível de &lt;strong&gt;turma&lt;/strong&gt;, e duas no nível individual: uma para &lt;strong&gt;docentes&lt;/strong&gt; e outra para os &lt;strong&gt;alunos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;É importante ressaltar que &lt;strong&gt;todas&lt;/strong&gt; as tabelas do dataset, além de terem identificação de suas observações, &lt;strong&gt;identificam sempre a escola&lt;/strong&gt; a qual pertencem, sempre tendo a variável &lt;code&gt;id_escola&lt;/code&gt;. Optamos por deixar essas variáveis para manter o paralelismo da base original e para que possíveis agregações e junções de tabelas fossem mais fáceis. &lt;/p&gt;

&lt;p&gt;Além disso, cabe reforçar que não disponibilizamos todas as variáveis que aparecem no Censo. Selecionamos a maioria das variáveis, as que aparecem mais vezes. Pegamos as variáveis que aparecem 8 ou mais vezes ao longo dos 12 anos, além de outras variáveis que julgamos serem cruciais por serem identificadoras importantes. Isso significa que, se a variável só aparece em 2 anos, por exemplo, ela não foi incluída nas nossas tabelas.&lt;/p&gt;
&lt;h3&gt;
  
  
  A tabela &lt;code&gt;escola&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A tabela &lt;code&gt;escola&lt;/code&gt; tem a granularidade de cada escola por cada ano. A identificação básica de cada unidade é feita pelas variáveis &lt;code&gt;id_escola&lt;/code&gt; e &lt;code&gt;ano&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Na tabela, temos &lt;strong&gt;três&lt;/strong&gt; grandes grupos de variáveis: variáveis com &lt;strong&gt;características gerais&lt;/strong&gt; da escola, variáveis que qualificam a &lt;strong&gt;infraestrutura&lt;/strong&gt; de cada instituição e variáveis que identificam quais &lt;strong&gt;tipos de aulas ocorrem&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Entre as características gerais, temos a &lt;strong&gt;rede&lt;/strong&gt; a qual a escola está vinculada, o &lt;strong&gt;tipo de localização&lt;/strong&gt; da escola, a &lt;strong&gt;dependência administrativa&lt;/strong&gt; mantida com o poder público, a &lt;strong&gt;instituição mantenedora&lt;/strong&gt; da escola e o seu &lt;strong&gt;local de funcionamento&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nas variáveis de infraestrutura, temos uma ampla caracterização do &lt;strong&gt;acesso&lt;/strong&gt; de cada instituição a serviços básicos, como &lt;strong&gt;água&lt;/strong&gt;, &lt;strong&gt;energia&lt;/strong&gt; e &lt;strong&gt;coleta&lt;/strong&gt;/&lt;strong&gt;tratamento de lixo e esgoto&lt;/strong&gt;. A infraestrutura de ensino também é avaliada: temos variáveis que medem a &lt;strong&gt;quantidade de equipamentos&lt;/strong&gt;, desde equipamentos de som ou DVD até computadores e conexão com a internet, além das variáveis que informam o &lt;strong&gt;número de salas&lt;/strong&gt;, de &lt;strong&gt;banheiros&lt;/strong&gt;, de &lt;strong&gt;quadras&lt;/strong&gt;, de &lt;strong&gt;laboratórios&lt;/strong&gt;, &lt;strong&gt;áreas verdes&lt;/strong&gt; e até de &lt;strong&gt;berçários&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Por fim, nas variáveis que identificam o ensino, temos em sua maioria variáveis binárias que identificam se a escola tem aulas  para &lt;strong&gt;ensino regular&lt;/strong&gt;, para &lt;strong&gt;EJA&lt;/strong&gt;, em formato EaD, entre outras. &lt;/p&gt;

&lt;p&gt;Com uma única entrada no R usando a &lt;a href="https://dev.to/basedosdados/como-usar-a-biblioteca-basedosdados-no-r-capitulo-1-46kb"&gt;biblioteca basedosdados&lt;/a&gt;, podemos descobrir, por exemplo, quais escolas não têm água potável em Minas Gerais no ano de 2020:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'SELECT ano,id_escola,agua_potavel 
FROM `basedosdados-dev.br_inep_censo_escolar.escola` 
WHERE agua_potavel = 0 and ano = 2020 and sigla_uf = "MG"'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou quais escolas funcionavam em unidades prisionais em 2009:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'SELECT id_escola,ano,local_func_unid_prisional 
FROM `basedosdados-dev.br_inep_censo_escolar.escola` 
WHERE ano = 2009 and local_func_unid_prisional = 1'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  A tabela &lt;code&gt;turma&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A tabela turma tem a granularidade de &lt;strong&gt;cada turma&lt;/strong&gt; por &lt;strong&gt;cada ano&lt;/strong&gt;, isto é, cada observação é identificada por seu &lt;code&gt;id_turma&lt;/code&gt;e pelo seu &lt;code&gt;ano&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Na tabela, encontramos principalmente variáveis relacionadas a &lt;strong&gt;quais dias&lt;/strong&gt; a turma tem aulas e &lt;strong&gt;de quais disciplinas&lt;/strong&gt; são essas aulas. Em cada um dos casos, tem-se variáveis binárias identificando cada dia da semana e cada matéria. &lt;/p&gt;

&lt;p&gt;Temos também variáveis que identificam &lt;strong&gt;atividades extracurriculares&lt;/strong&gt; e &lt;strong&gt;quando elas são feitas por cada turma&lt;/strong&gt;, além das já mencionadas identificações da escola a qual a turma está inserida.&lt;/p&gt;

&lt;p&gt;Se quisermos abrir as turmas de 2010 para o estado da Bahia por exemplo, no &lt;a href="https://dev.to/basedosdados/base-dos-dados-python-101-44lc"&gt;Python&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;basedosdados&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;bd&lt;/span&gt; 
&lt;span class="n"&gt;bd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;" SELECT * FROM `basedosdados.br_inep_censo_escolar.turma` 
WHERE ano = 2010 and sigla_uf = BA "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
&lt;span class="n"&gt;billing_project_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"bd_projeto"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  A tabela &lt;code&gt;docente&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A tabela &lt;code&gt;docente&lt;/code&gt; tem a granularidade a nível dos profissionais escolares em sala de aula: professores, auxiliares, tradutores/intérpretes entre outros que atuam pedagogicamente na escola. Cada linha da tabela corresponde a &lt;strong&gt;um profissional, por cada ano&lt;/strong&gt;. Cada um desses profissionais é identificado com um &lt;code&gt;id_docente&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Na tabela temos as mais diversas características de cada docente, representadas por mais de 80 variáveis. Tem-se características &lt;strong&gt;pessoais&lt;/strong&gt; de cada docente, como sua &lt;strong&gt;raça/cor&lt;/strong&gt;, seu &lt;strong&gt;sexo&lt;/strong&gt;, sua &lt;strong&gt;idade&lt;/strong&gt;, sua &lt;strong&gt;nacionalidade&lt;/strong&gt; e até o &lt;strong&gt;município de nascimento&lt;/strong&gt; e o &lt;strong&gt;município onde o docente reside&lt;/strong&gt;. Também temos variáveis que identificam a &lt;strong&gt;formação&lt;/strong&gt; do docente, desde as &lt;strong&gt;disciplinas&lt;/strong&gt; pelo qual ele é responsável, até a sua &lt;strong&gt;formação específica&lt;/strong&gt; como professor.&lt;/p&gt;

&lt;p&gt;Se quisermos só os docentes pretos da cidade de Rio Branco por exemplo, poderíamos rodar em &lt;a href="https://dev.to/basedosdados/base-dos-dados-python-101-44lc"&gt;Python&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;basedosdados&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;bd&lt;/span&gt; 
&lt;span class="n"&gt;bd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"SELECT * FROM `basedosdados.br_inep_censo_escolar.docente`
WHERE id_municipio = 1200401 and raca_cor = 2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;billing_project_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"bd_projeto"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  A tabela &lt;code&gt;matricula&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Sem dúvida uma das maiores tabelas de todo nosso datalake, a tabela &lt;code&gt;matricula&lt;/code&gt; identifica cada aluno brasileiro através da &lt;code&gt;id_aluno&lt;/code&gt;. As observações estão no nível de cada &lt;strong&gt;aluno&lt;/strong&gt; e de cada &lt;strong&gt;ano&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Entre as variáveis, temos as que caracterizam dados pessoais de cada aluno, paralelo ao feito com cada docente: temos &lt;code&gt;sexo&lt;/code&gt;, &lt;code&gt;cor_raca&lt;/code&gt;, &lt;code&gt;id_municipio_nascimento&lt;/code&gt;, &lt;code&gt;id_municipio_endereco&lt;/code&gt;, que, assim como na tabela de docentes, identificam sexo, cor/raça e o município onde nasceu e onde reside o aluno. Temos também variáveis que caracterizam deficiências dos alunos, físicas e intelectuais.&lt;/p&gt;

&lt;p&gt;Para além desses casos, temos também um conjunto de dados que identificam relações do aluno com a escola: variáveis que identificam &lt;strong&gt;como os alunos se deslocam até a escola&lt;/strong&gt; e variáveis que identificam &lt;strong&gt;como os alunos ingressaram na instituição&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A tabela &lt;code&gt;matricula&lt;/code&gt;, especificamente, é muito grande (chega a mais de 90gb), por isso &lt;strong&gt;não recomendamos&lt;/strong&gt; tentar baixá-la ou utilizá-la &lt;strong&gt;inteira&lt;/strong&gt;: a tabela é particionada por &lt;strong&gt;ano&lt;/strong&gt; e por &lt;strong&gt;uf&lt;/strong&gt; de maneira que, ao filtrar por essas variáveis, o resultado é obtido mais rápido e o gasto é bem menor.&lt;/p&gt;

&lt;p&gt;Como exemplo, podemos recortá-la para pegar somente os estudantes que vão à escola de transporte público em 2019, no estado de Roraima. &lt;a href="https://dev.to/basedosdados/como-usar-a-biblioteca-basedosdados-no-r-capitulo-1-46kb"&gt;No R&lt;/a&gt; ficaria assim:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"SELECT * FROM `basedosdados.br_inep_censo_escolar.matricula
WHERE sigla_uf = RR and transporte_publico = 1 
and ano = 2019"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pontos de contato com outras bases
&lt;/h2&gt;

&lt;p&gt;O censo escolar por si só já disponibiliza uma grande variedade de variáveis. Caso você queira obter ainda mais, com a &lt;a href="https://basedosdados.github.io/mais/access_data_bq/"&gt;BD+&lt;/a&gt; é fácil: como as bases têm os mesmos nomes de variável, podemos rapidamente juntar diferentes informações. A seguir separamos algumas bases já disponíveis na BD+ que podem complementar bem as tabelas do Censo Escolar:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://basedosdados.org/dataset/br-inep-indicadores-educacionais"&gt;&lt;strong&gt;Os indicadores escolares do INEP&lt;/strong&gt;&lt;/a&gt;: O dataset &lt;code&gt;br_inep_indicadores_educacionais&lt;/code&gt; apresenta uma série de medições sobre a qualidade de ensino, em diferentes níveis de agregação. Usando a tabela &lt;code&gt;escola&lt;/code&gt; como ponte, podemos juntar &lt;strong&gt;média de alunos por turma da escola&lt;/strong&gt; (proveniente dessa tabela) com &lt;strong&gt;número de computadores da escola&lt;/strong&gt; (vindo do Censo) e &lt;strong&gt;construir um mais amplo cenário socioeconômico da escola&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://basedosdados.org/dataset/br-inep-ideb"&gt;&lt;strong&gt;As notas do IDEB&lt;/strong&gt;&lt;/a&gt;: O dataset &lt;code&gt;br_inep_ideb&lt;/code&gt;nos disponibiliza tabelas de diferentes que identificam as notas dos alunos em avaliações da qualidade do ensino (as provas do SAEB), as taxas de rendimento (aprovação, reprovação, abandono) e o desempenho no IDEB. Junto com as  tabelas do Censo, pode-se avaliar, por exemplo, &lt;strong&gt;como escolas com mais professores com mestrado vão nessas provas em relação a escolas com professores que não tem pós graduação&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://basedosdados.org/dataset/?q=seduc"&gt;&lt;strong&gt;Diferentes tabelas da SEDUC&lt;/strong&gt;&lt;/a&gt;: As tabelas da SEDUC disponibilizam informações sobre o nível educacional e socioeconômico das escolas estaduais de São Paulo. Com elas somadas ao censo, pode se avaliar por exemplo &lt;strong&gt;se escolas com melhor infraestrutura tem maior evasão no ensino médio.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As tabelas do Censo também tem identificação do município de cada uma das escolas, das turmas, dos docentes e dos alunos, permitindo vinculá-las com quase todas as tabelas a nível de município disponível no nosso datalake. &lt;/p&gt;

&lt;p&gt;Chegamos ao fim da nossa breve apresentação! Os dados da mais importante pesquisa estatística educacional brasileira, o Censo Escolar (e todas suas nuances) agora fazem parte da &lt;a href="https://basedosdados.org/"&gt;Base dos Dados&lt;/a&gt;! &lt;/p&gt;

&lt;p&gt;Nosso projeto já te ajudou de alguma forma? Saiba como nos ajudar:&lt;br&gt;
-&lt;a href="https://apoia.se/basedosdados"&gt;Apoie o projeto&lt;/a&gt;&lt;br&gt;
-&lt;a href="https://basedosdados.github.io/mais/colab_data/"&gt;Seja um(a) colaborador(a) de dados na BD&lt;/a&gt;&lt;br&gt;
-&lt;a href="https://github.com/basedosdados/mais"&gt;Colabore com nossos pacotes&lt;/a&gt;&lt;br&gt;
-&lt;a href="https://twitter.com/basedosdados"&gt;Compartilhe nas redes sociais!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Texto produzido por &lt;a href="https://github.com/mavalentim"&gt;Matheus&lt;/a&gt; da equipe de Dados, com enorme apoio do pesquisador Adriano Senkevics, um dos especialistas em educação da nossa comunidade 💚&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>programming</category>
    </item>
    <item>
      <title>Como usar a biblioteca basedosdados no R - capítulo 1</title>
      <dc:creator>Matheus Valentim</dc:creator>
      <pubDate>Wed, 12 May 2021 17:56:00 +0000</pubDate>
      <link>https://dev.to/basedosdados/como-usar-a-biblioteca-basedosdados-no-r-capitulo-1-46kb</link>
      <guid>https://dev.to/basedosdados/como-usar-a-biblioteca-basedosdados-no-r-capitulo-1-46kb</guid>
      <description>&lt;h1&gt;
  
  
  TL;DR
&lt;/h1&gt;

&lt;p&gt;Neste texto vamos explicar &lt;strong&gt;como usar a biblioteca &lt;code&gt;basedosdados&lt;/code&gt; no R&lt;/strong&gt; e como exemplo iremos explorar a &lt;strong&gt;relação entre cobertura da coleta e tratamento de esgoto, e incidência de doenças causadas pela falta de saneamento básico&lt;/strong&gt;. A biblioteca permite acessar, baixar e carregar centenas de bases do nosso datalake público direto na sua máquina. Serão apresentadas as funções presentes do pacote e como utilizá-las para realizar análises.&lt;/p&gt;

&lt;h1&gt;
  
  
  Como acessar nosso datalake público (BD+)
&lt;/h1&gt;

&lt;p&gt;Organizamos neste datalake as principais bases públicas já tratadas e compatibilizadas, prontas para análise. O datalake é mantido no ambiente da Google (BigQuery) e o acesso às bases é gratuito, com um limite mensal de 1TB - acredite, nem a gente chega a tanto.&lt;/p&gt;

&lt;p&gt;O pacote &lt;em&gt;basedosdados&lt;/em&gt; te permite acessar esse banco através do R de um jeito rápido e fácil. Para isso, é necessário somente que você possua um projeto no Google Cloud, o que é gratuito. Veja aqui os &lt;a href="https://basedosdados.github.io/mais/access_data_local/#criando-um-projeto-no-google-cloud" rel="noopener noreferrer"&gt;5 passos para criar seu projeto&lt;/a&gt;. Caso não tenha o projeto, ao utilizar a biblioteca pela primeira vez, esse mesmo passo a passo para criação é printado no seu console.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conhecendo a biblioteca &lt;code&gt;basedosdados&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;Como qualquer outra biblioteca no R, você deve instalá-la e carregar no seu ambiente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="c1"&gt;# instalando a biblioteca&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;install.packages&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'basedosdados'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c1"&gt;# carregando a biblioteca na sessão&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;A biblioteca contém duas funções principais: &lt;code&gt;read_sql()&lt;/code&gt; e a &lt;code&gt;download()&lt;/code&gt;, descritas abaixo.&lt;/p&gt;
&lt;h3&gt;
  
  
  Função &lt;code&gt;download()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;donwload()&lt;/code&gt; te permite baixar bases direto do nosso repositório em sua máquina, como um arquivo .CSV. Seus argumentos são:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;query&lt;/code&gt;: query &lt;strong&gt;em SQL&lt;/strong&gt; com qual tabela se quer baixar, com quais colunas e com qual agregação&lt;br&gt;
&lt;code&gt;path&lt;/code&gt;: um caminho para onde salvar o arquivo .csv. Um truque importante é usar &lt;a href="https://support.rstudio.com/hc/en-us/articles/200526207-Using-Projects" rel="noopener noreferrer"&gt;projetos do R&lt;/a&gt;. Com eles, você não precisa especificar todo o caminho onde quer salvar as bases e o código pode ser mais facilmente reutilizado por outros usuários. Ao longo do texto vamos usar o caminho "/bases" como sendo uma pasta em um dado projeto R. Note que depois de "/bases" acrescentamos o nome do arquivo e o formato .csv.&lt;/p&gt;

&lt;p&gt;Caso você queira baixar o Atlas Esgotos da ANA, base que vamos usar nas aplicações, rodaria:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;download&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'SELECT * FROM `basedosdados.br_ana_atlas_esgotos.municipios` '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'/bases/base_ana.csv'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Função &lt;code&gt;read_sql()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;read_sql()&lt;/code&gt; usa uma API para acessar o datalake e &lt;strong&gt;abrir uma base em formato tibble na sua sessão de R&lt;/strong&gt;. O R se encarrega de entrar na nuvem, escolher a tabela e rodar a query para acessá-la, conforme os parâmetros passados na função:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;query&lt;/code&gt; (string) : é a consulta que será feita ao banco em SQL. Aqui você pode especificar filtros, agrupamentos, e outras transformações usando SQL. &lt;a href="https://www.w3schools.com/sql/" rel="noopener noreferrer"&gt;Veja mais sobre a sintaxe aqui.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;billing-project-id&lt;/code&gt;: é o identificador do seu projeto do Google. Ele é necessário para que o Google saiba quem está acessando a nuvem, e contabilizar o tamanho da requisição que você está fazendo. Não precisa ser especificado caso a set_billing_id seja usada.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Funções &lt;code&gt;set_billing_id()&lt;/code&gt; e &lt;code&gt;get_billing_id()&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;set_billing_id()&lt;/code&gt; guarda o seu &lt;code&gt;billing-project-id&lt;/code&gt; usado na função &lt;code&gt;read_sql()&lt;/code&gt;. Em outras palavras, você pode definir uma única vez na sessão o seu identificador de projeto do Google, e ele não precisa mais ser um argumento para acessar tabelas. Para os mais &lt;strong&gt;experientes&lt;/strong&gt;, um outro truque possível é guardar o seu id em algum &lt;code&gt;objeto&lt;/code&gt; de um arquivo &lt;code&gt;.env&lt;/code&gt; e depois usar a função &lt;a href="https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/Sys.getenv" rel="noopener noreferrer"&gt;&lt;code&gt;Sys.getenv(&lt;/code&gt;objeto&lt;code&gt;)&lt;/code&gt;&lt;/a&gt; para acessá-lo. Um arquivo &lt;code&gt;.env&lt;/code&gt; pode ser gerado com a biblioteca &lt;a href="https://www.rdocumentation.org/packages/dotenv/versions/1.0.3" rel="noopener noreferrer"&gt;dotenv&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;get_billing_id()&lt;/code&gt; printa o valor guardado em set_billing_id. Essa função não é diretamente usada: a função &lt;code&gt;read_sql()&lt;/code&gt; automaticamente pega o identificador definido &lt;strong&gt;através&lt;/strong&gt; da &lt;code&gt;get_billing_id()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Dito isso, uma vez que definimos nosso &lt;code&gt;billing-project-id&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;set_billing_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"meu-projeto-3058"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Não precisamos mais usar a função &lt;code&gt;read_sql()&lt;/code&gt; com dois argumentos:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'SELECT * FROM `basedosdados.br_ana_atlas_esgotos.municipios` '&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;billing_project_id&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"meu-projetoid-3058"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Podemos usá-la &lt;strong&gt;sem&lt;/strong&gt; o segundo argumento (que é o que será feito ao longo do texto):&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'SELECT * FROM `basedosdados.br_ana_atlas_esgotos.municipios` '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h1&gt;
  
  
  Aplicações
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Antes: Como descobrir os nomes de tabelas
&lt;/h2&gt;

&lt;p&gt;Para exemplificar o uso da biblioteca, vamos estudar duas variáveis &lt;strong&gt;de bases diferentes&lt;/strong&gt; que acreditamos estar correlacionadas: &lt;strong&gt;investimento em coleta de esgoto&lt;/strong&gt; e &lt;strong&gt;mortes por doenças que se propagam na falta de saneamento básico&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Para começar essa análise, iremos acessar os dados do &lt;a href="https://basedosdados.org/dataset/br-ana-atlas-esgotos" rel="noopener noreferrer"&gt;Atlas Esgotos da Agência Nacional das Águas&lt;/a&gt;. Ao acessar o link do conjunto de dados no nosso site (acima), você verá listado as "Tabelas disponíveis na BD+" - isso indica quais tabelas estão disponíveis no banco.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh6gywo7b5sz041aiyxal.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh6gywo7b5sz041aiyxal.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Neste caso temos somente a tabela &lt;code&gt;municipios&lt;/code&gt;. Ao clicar na mesma, você irá para uma página que mostra como acessar essa tabela no próprio banco (via editor do BigQuery), em Python e em R (figura abaixo). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkubsvvcrz3ahp7zblfsm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkubsvvcrz3ahp7zblfsm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No código, vem descrito já o nome do conjunto e da tabela no banco - neste caso, &lt;code&gt;basedodados&lt;/code&gt; é o banco, &lt;code&gt;br_ana_atlas_esgotos&lt;/code&gt; o conjunto e &lt;code&gt;municipios&lt;/code&gt; a tabela. Você pode copiar este código direto para o RStudio.&lt;/p&gt;
&lt;h2&gt;
  
  
  Diferentes maneiras de consultar uma tabela no R
&lt;/h2&gt;

&lt;p&gt;Utilizando a função &lt;code&gt;read_sql()&lt;/code&gt;, iremos carregar os dados do &lt;a href="https://basedosdados.org/dataset/br-ana-atlas-esgotos" rel="noopener noreferrer"&gt;Atlas Esgostos da ANA&lt;/a&gt; no R e salvar esse tibble em um objeto chamado &lt;code&gt;base&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'SELECT * FROM `basedosdados.br_ana_atlas_esgotos.municipios` '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Caso você clique para ver a base, vai se deparar com algo assim:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc66elmo3iikoqp16osb1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc66elmo3iikoqp16osb1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O Atlas contém mais de 30 variáveis sobre a condição da coleta e do tratamento de esgoto para cada município brasileiro. Entre elas, temos, por exemplo, a porcentagem de habitantes do município sem acesso a esgoto tratado, o nome do prestador do serviço do saneamento e o investimento feito pelo município em coleta e em tratamento de esgoto.&lt;/p&gt;

&lt;p&gt;A query usada contém um * para indicar que estamos selecionando &lt;strong&gt;todas&lt;/strong&gt; as colunas da tabela. Caso quiséssemos baixar &lt;strong&gt;só&lt;/strong&gt; duas colunas, como o identificador do municipio (&lt;code&gt;id_municipio&lt;/code&gt;) e o índice de pessoas que não recebe atendimento de tratamento de esgoto (&lt;code&gt;indice_sem_atend&lt;/code&gt;) bastaria rodar algo como:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_cobertura&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;span class="s1"&gt;'SELECT id_municipio, indice_sem_atend 
FROM `basedosdados.br_ana_atlas_esgotos.municipios` '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Outra maneira de selecionar uma "sub-base" é filtrando as observações por alguma característica: se estivermos interessados somente no saneamento básico da região norte, não faz sentido pegarmos todas as 5570 linhas da base original. Podemos rodar uma query adicionando o verbo WHERE e indicar que só queremos estados do Norte:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_norte&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'SELECT * 
FROM `basedosdados.br_ana_atlas_esgotos.municipios` 
WHERE sigla_uf in ("AM","AP","RO","RR","AC", "PA") '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Além dessas possibilidades de seleção, podemos &lt;strong&gt;agregar&lt;/strong&gt; essas tabela para o nível de estado, ao invés do nível de município, utilizando um agrupamento por &lt;code&gt;sigla_uf&lt;/code&gt;. Ao agregarmos, precisamos também agregar as colunas, somando ou tirando uma média, por exemplo. Nesse exemplo, vamos pegar uma média da cobertura de esgoto por UF. O código fica assim:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_uf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;basedosdados&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;span class="s1"&gt;'SELECT sigla_uf, AVG(indice_sem_atend) as sem_esgoto
FROM `basedosdados.br_ana_atlas_esgotos.municipios` 
GROUP BY sigla_uf '&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Visualizando o acesso a tratamento nos estados
&lt;/h2&gt;

&lt;p&gt;Para finalizar,  vamos construir um gráfico com essa última base criada para visualizar &lt;strong&gt;quais estados tem maior e a menor média de acesso a tratamento de esgoto&lt;/strong&gt; nos seus municipios:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_uf&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ggplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sem_esgoto&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;reorder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sigla_uf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;sem_esgoto&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;geom_col&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fill&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'#7cb342'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;labs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Estado"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Porcentagem média sem saneamento"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; 
       &lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"População sem saneamento básico"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="n"&gt;subtitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Média da porcentagem da população municipal sem saneamento, por UF"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;theme_classic&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fee0c4zqeg2rl0h33srri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fee0c4zqeg2rl0h33srri.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Parabéns! Concluímos a nossa primeira aplicação da basedosdados! Com ela, descobrimos que o estado que tem, em média, o pior acesso a tratamento e coleta de esgoto nas suas cidades é Rondônia, e o estado que tem a melhor é São Paulo.&lt;/p&gt;

&lt;p&gt;Para usar esta mesma base em um outro software, pode-se usar a função &lt;code&gt;download()&lt;/code&gt; para baixá-la em CSV direto na sua máquina:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;download&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;span class="s1"&gt;'SELECT sigla_uf, AVG(indice_sem_atend) as sem_esgoto
FROM `basedosdados.br_ana_atlas_esgotos.municipios` 
GROUP BY sigla_uf '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'/bases/base_ana_uf.csv'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Cruzando diferentes bases
&lt;/h2&gt;

&lt;p&gt;Outra aplicação importante do pacote é a possibilidade de &lt;strong&gt;juntar diferentes bases sem ter que abrí-las individualmente&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Para exemplificar, vamos comparar os dados que obtemos de saneamento com o &lt;strong&gt;nível de mortalidade por doenças relacionadas à falta de saneamento&lt;/strong&gt;. Para explorar mortalidade precisamos de &lt;em&gt;número de óbitos&lt;/em&gt;, que estão na tabela do &lt;a href="https://basedosdados.org/dataset/br-ms-sim" rel="noopener noreferrer"&gt;Sistema de Mortalidade do Ministério da Saúde (SIM)&lt;/a&gt;, e da &lt;em&gt;população&lt;/em&gt;, na &lt;a href="https://basedosdados.org/dataset/br-ibge-populacao" rel="noopener noreferrer"&gt;tabela de população do IBGE&lt;/a&gt;. Ambas as tabelas estão disponíveis na BD+ nos links acima!&lt;/p&gt;

&lt;p&gt;Para cruzar as tabelas vamos filtrar ambas para o ano de 2013, referente ao Atlas Esgotos (tabela anterior), pela coluna &lt;code&gt;ano&lt;/code&gt; presente em todas as tabelas. Além disso, vamos também escolher somente a mortalidade de &lt;code&gt;causa_basica&lt;/code&gt; referente a &lt;strong&gt;doenças diarréicas&lt;/strong&gt;, relacionadas à falta de saneamento básico. Os códigos de referência da coluna &lt;code&gt;causa_basica&lt;/code&gt; na tabela SIM podem ser &lt;a href="https://github.com/basedosdados/mais/blob/master/bases/br_ms_sim/dictionaries/CID10/CID-10-CATEGORIAS.CSV" rel="noopener noreferrer"&gt;consultados aqui&lt;/a&gt;. A query abaixo faz esses filtros e seleciona as colunas tanto da base de população e quanto de mortalidade:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_mortalidade&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'
SELECT sim.id_municipio, sim.numero_obitos , pop.populacao 
FROM `basedosdados.br_ms_sim.municipio_causa` as sim
FULL JOIN `basedosdados.br_ibge_populacao.municipios` as pop ON sim.id_municipio = pop.id_municipio
WHERE sim.ano = 2013 and pop.ano = 2013 and sim.causa_basica in ("A00", "A01", "A02", "A03", "A04", "A05", "A06","A07", "A08", "A09")'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mortalidade&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numero_obitos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;populacao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="m"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id_municipio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;mortalidade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Vamos então juntar essa base com a tabela de cobertura de saneamento e ver as possíveis correlações. Para isso, podemos juntar as bases abertas no R, a &lt;code&gt;base_cobertura&lt;/code&gt; e a &lt;code&gt;base_mortalidade&lt;/code&gt;, ou podemos rodar uma nova QUERY:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_final&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;lt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;read_sql&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="s1"&gt;'SELECT  sim.id_municipio, sim.numero_obitos , pop.populacao, ana.indice_sem_atend
FROM `basedosdados.br_ms_sim.municipio_causa` as sim
FULL JOIN `basedosdados.br_ibge_populacao.municipios` as pop ON sim.id_municipio = pop.id_municipio
FULL JOIN `basedosdados.br_ana_atlas_esgotos.municipios` as
ana ON sim.id_municipio = ana.id_municipio 
WHERE sim.ano = 2013 and pop.ano = 2013 and sim.causa_basica in ("A00", "A01", "A02", "A03", "A04", "A05", "A06","A07", "A08", "A09")'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Com a base em mãos, criamos um gráfico que relaciona a mortalidade por doenças diarreicas e a cobertura de saneamento básico:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight r"&gt;&lt;code&gt;&lt;span class="n"&gt;base_final&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;mutate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mortalidade&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numero_obitos&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;populacao&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="m"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;%&amp;gt;%&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;ggplot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;mortalidade&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;indice_sem_atend&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;geom_point&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'#7cb342'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;labs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Porcentagem sem saneamento"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Mortalidade"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; 
       &lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Saneamento x Mortalidade"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="n"&gt;subtitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Os municípios que tem pior cobertura também tem mais mortes?"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;theme_classic&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomq4icuf8249hqi6hdls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomq4icuf8249hqi6hdls.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E com isso descobrimos que aparentemente não há uma forte correlação entre cobertura de saneamento e mortalidade por doenças quando analisamos todos municípios brasileiros que tiveram mortes por diarreia... Mas, conseguimos facilmente juntar 3 bases de diferentes organizações numa única entrada!&lt;/p&gt;

&lt;p&gt;Muito obrigado por ler até aqui!&lt;/p&gt;



&lt;p&gt;Confira o notebook com a análise completa no nosso repositório:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/basedosdados" rel="noopener noreferrer"&gt;
        basedosdados
      &lt;/a&gt; / &lt;a href="https://github.com/basedosdados/analises" rel="noopener noreferrer"&gt;
        analises
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      📊 Repositório de códigos simples e replicáveis das análises publicadas. 
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;p&gt;A &lt;a href="https://basedosdados.org/" rel="noopener noreferrer"&gt;Base dos Dados&lt;/a&gt; é uma ONG com intuito de disponibilizar dados tratados e limpos para qualquer um acessar de um jeito rápido e fácil. &lt;a href="https://apoia.se/basedosdados" rel="noopener noreferrer"&gt;Apoie a nossa iniciativa 💚&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
