1️
Introdução aos indicadores sociais com R e RStudio
  • Apresentação
  • Aula 1 - R e RStudio
  • Aula 2 - Indicadores e os dados do Atlas Brasil
    • Aula 2 - anexo como baixar dados do atlas brasil
  • Aula 3 - Os primeiros passos da análise de indicadores com o RStudio
  • Aula 4 - Scripts com o RStudio
  • Aula 5 - Criando projetos no RStudio
  • Aula 6 - Criando documentos Rmarkdown
  • Aula 7 - Manipulando dados com dplyr
  • Aula 8 - Gramática dos gráficos
Powered by GitBook
On this page

Aula 7 - Manipulando dados com dplyr

PreviousAula 6 - Criando documentos RmarkdownNextAula 8 - Gramática dos gráficos

Last updated 1 year ago

CtrlK
  • Objetivo
  • Videoaula
  • Script utilizado nas duas vídeo aulas
  • O tratamento de dados
  • Um alicate para o tratamento de dados
  • As funções básicas no pacote dplyr e o pipe %>%
  • Funções auxiliares
  • Material adicional
  • Agora é com você
  • Comparação entre Dplyr e R básico

Aula 7 - Manipulando dados com dplyr

Objetivo

Aprender as operações básicas de tratamento de dados com o pacote dplyr, parte da coleção tidyverse.

Videoaula

Esse primeiro vídeo é um material introdutório que foi preparado para uma formação de alunos do projeto InfoSoc/UEL. Mas serve como uma visão geral sobre a importância do pacote {tidyverse}

Formato básico dos dados: Tidy data (Tabelas Retangulares) - Watch Video

Os dois vídeos seguintes tratam da base de dados dos Indicadores Sociais do Atlas Brasil IPEA,PNUD, FJP.

Importar dados do excel e ver sumário descritivo com {summarytools} - Watch Video

Tratamento de dados de indicadores sociais com {dplyr} - Watch Video

Script utilizado nas duas vídeo aulas

Manipulando dados com dplyr

# --------------------------

# ---------

# Primeiro vídeo # -------------

# 1. Importar os dados

library(tidyverse)

library(readxl)

munic_tbl <- read_excel("dados/Atlas 2013_municipal, estadual e Brasil.xlsx",

sheet = "MUN 91-00-10")

View(munic_tbl)

# 2. Inspeção inicial para identificar valores mínimos, média e máximos

# valores ausentes (na) e o formato da distribuição de frequência dos dados

@install.packages("summarytools")

library(summarytools)

view(dfSummary(munic_tbl))

# ---------

# Segundo vídeo # -------------

# Criar uma variável com o município por

# classe de tamanho de população

# classe de tamanho da população Total IBGE

#

# Até 5.000

# 5.001 a 20.000

# 20.001 a 100.000

# 100.001 a 500.000

# Mais de 500.000

# Classificação ONU para IDH e IDHM

# Muito baixo: 0 a 0,499.

# Baixo: 0,500 a 0,599.

# Médio: 0,600 a 0,699.

# Alto: 0,700 a 0,799.

# Muito alto: 0,800 a 1.

# Taxa de Urbanização

#Script de tratamento dos dados

library(tidyverse)

munic_tbl |>

select(ANO, UF, Codmun7, Município, IDHM, IDHM_E, IDHM_L, IDHM_R, POP, pesotot, pesourb, pesoRUR) %>%

mutate(classe_pop = case_when(

(POP < 5001) ~ "1) Até 5.000",

(POP > 5000 & POP < 20001) ~ "2) 5.001 a 20.000",

(POP > 20000 & POP < 100001) ~ "3) 20.001 a 100.000",

(POP > 100000 & POP < 500001) ~ "4) 100.001 a 500.000",

(POP > 500000) ~ "5) Mais de 500.000",

)) |>

mutate(classe_idhm = case_when(

(IDHM < 0.5) ~ "Muito baixo",

(IDHM >= 0.5 & IDHM < 0.6) ~ "Baixo",

(IDHM >= 0.6 & IDHM < 0.7) ~ "Médio",

(IDHM >= 0.7 & IDHM < 0.8) ~ "Alto",

(IDHM >= 0.8) ~ "Muito Alto",

)) |>

mutate(taxa_urbanizacao = (pesourb / pesotot) * 100) |>

mutate(urbano_rural = case_when(

(taxa_urbanizacao >= 50) ~ "Urbano",

(taxa_urbanizacao < 50) ~ "Rural")) -> m2_munic

m2_munic |>

group_by(ANO,urbano_rural) |>

summarise(media = mean(IDHM),total_de_municipios = n())

m2_munic |>

group_by(ANO,classe_pop) |>

summarise(media = mean(IDHM),total_de_municipios = n())

O tratamento de dados

De todas as etapas que envolvem operações computacionais, certamente o tratamento de dados é a fase que mais consome tempo. Qualquer que seja a área, os dados raramente estarão prontos para a análise. Um bom tempo deverá ser dedicado para organizá-los de modo a que se possa extrair de uma coleção de informações algum tipo de conhecimento propriamente.

De modo geral, chama-se de tratamento de dados todas as etapas de planejamento (ou desenho) da estrutura de dados, a importação, limpeza, formatação e adequação, o tratamento dos casos faltantes, a ordenação, extração, combinação e manipulação das variáveis para análise.

Todas essas etapas podem ser feitas com o R somente ou em combinação com algum software especializado em gerenciamento de banco de dados.

Um alicate para o tratamento de dados

O R básico possui um formato de linguagem compacto, para agilizar a digitação durante as consultas interativas. Mas, se esse tipo de notação favorece a rapidez na obtenção de respostas pelo console do computador, por outro lado, dificulta a documentação dos scripts mais longos, como normalmente se faz em pesquisa com dados sociais.

O código compacto também não é muito intuitivo. Várias funções e símbolos inseridos em uma única linha não é uma representação clara das etapas da análise. Pensando nisso, a ideia que deu origem ao pacote {dplyr}, segundo seu autor - Hadley Wickham*, procurou aproximar as funções do R da estratégia mais comumente usada por quem faz análise de dados: "dividir-calcular-combinar".

Essa estratégia de dividir e conquistar, concentra os passos para análise de dados em três conjuntos básicos de operações:

  1. seleção dos casos e variáveis a serem estudadas em um conjunto de dados

  2. aplicação de funções para cálculo de resultado para cada grupo selecionado

  3. combinação dos resultados para a análise propriamente do material

O pacote {dplyr} foi criado exatamente para realizar essas operações de forma direta, tanto para quem escreve, quanto para quem lê os scripts. O termo dplyr significa algo como d, uma referência a dados e “plyr”, que soa em inglês como plier (“pláier”), que quer dizer "alicate" em tradução para o português. Ou seja, um “alicate” para manipular os dados. Faz também alusão a um conjunto de funções muito usadas no R básico para esse mesmo tipo de procedimento: apply(), sapply(), lapplay(). As funções do pacote {dplyr} necessariamente não substituem as funções apply(), do R básico, mas permitem que as operações fundamentais de tratamento de dados com o R sejam feitas de forma bem mais intuitiva.

As funções básicas no pacote dplyr e o pipe %>%

O pacote dplyr possui funções específicas para realização de cada uma das etapas da análise de dados.

Dividir

Para a escolha dos casos que serão analisados, utiliza-se a função filter()

A seleção e variáveis a serem estudadas é feita com a função select()

Pode-se reordenar os casos com a função arrange()

Calcular

Para criar novas variáveis calculadas a partir das variáveis existentes ou de condições relacionadas aos casos selecionados, existe a função mutate()

Combinar

Para apresentar resultados agregados, ou seja, para se extrair informações combinando a seleção de casos e variáveis, utiliza-se a função summarize()

O R básico possui uma função para apresentar um resumo dos dados, chamada de summary(). A função summarize() do pacote dplyr vai além, permite a construção de resultados conforme o objetivo de análise da pesquisa.

A função summarize() torna-se ainda mais versátil quando aplicada em conjunto com a função group_by(), que permite agrupar os casos para análise comparativa.

Todas essas funções podem ser conectadas em sequência com o conector (pipe) %>% do pacote {magritr}, que é instalado juntamente com o pacote {dplyr} ou com {tidyverse}.

Funções auxiliares

O pacote dplyr possui várias outras funções que auxiliam o tratamento de dados. Algumas que podemos destacar:

  • rename() - permite renomear as variáveis

  • na.omit() - excluir os casos com valores omissos (no R são identificados como na)

  • count() - conta as categorias em uma variável

  • add_row() - adiciona casos (linhas) à sua base de dados

  • add_column() - adiciona variáveis (colunas) à sua base de dados

  • Há várias outras funções que podem ser utilizadas, conforme se pode observar na folha de referência sobre as funções do pacote {dplyr}:

Material adicional

Comparação entre Dplyr, R básico e SQL (Structured Query Language). O SQL que será utilizado no curso posterior sobre Construção de Indicadores Sociais com o R. Mas, para adiantar, segue uma visão inicial comparativa.

Selecionando casos e variáveis com o R básico, SQL e dplyr - Watch Video

Agora é com você

  1. Reproduz o script apresentado na videoaula

  2. Importe a planilha do Atlas Brasil com os indicadores municipais

  3. Crie uma visão descritiva dos dados com o pacote {summarytools}

  4. Utilize o pacote {dplyr}, que faz parte do pacote {tidyverse] e selecione as seguintes variáveis ANO, UF, Codmun7, Município, IDHM, IDHM_E, IDHM_L, IDHM_R, POP, pesotot, pesourb, pesoRUR

  5. Crie quatro novas variáveis na base sobre indicadores municipais:

    1. classe de tamanho de população, conforme definição do IBGE

    2. classe de IDHM, conforme definição do PNUD

    3. taxa de urbanização

  6. Verifique se o IDHM médio varia entre 1991, 2000 e 2010 por identificação de município rural e urbano

  7. Verifique se o IDHM médio varia entre 1991, 2000 e 2010 por classe de tamanho de população

  8. Verifique se o IDHM Educação médio varia entre 1991, 2000 e 2010 por identificação de município rural e urbano

  9. Verifique se o IDHM Educação médio varia entre 1991, 2000 e 2010 por classe de tamanho de população

  10. Verifique se o IDHM Renda médio varia entre 1991, 2000 e 2010 por identificação de município rural e urbano

  11. Verifique se o IDHM Renda médio varia entre 1991, 2000 e 2010 por classe de tamanho de população

  12. Verifique se o IDHM Longevidade médio varia entre 1991, 2000 e 2010 por identificação de município rural e urbano

  13. Verifique se o IDHM Longevidade médio varia entre 1991, 2000 e 2010 por classe de tamanho de população

  14. Salve o seu script no diretório de projetos em uma pasta específica para os scripts.

Comparação entre Dplyr e R básico

Nesse curso introdutório, vamos dar ênfase às funções do pacote {tidyverse}, em especial ao pacote de manipulação e tratamento de dados {dplyr}. Mas, para quem quiser se aprofundar, vamos mostrar as funções do Tidyverse e a correspondência com o R básico. Esse conteúdo não é necessário para fazer as atividades propostas.

Na tabela a seguir, há uma comparação das funções do dplyr e do R básico, sendo que df significa um data.frame (a base de dados que se está analisando, por exemplo o Atlas Brasil). As letras x, y, z referem-se a variáveis na base de dados.

Por exemplo, usando dplyr para ordenar os dados que estão em uma base de dados, denominada de atlas_2013 (seria o df na tabela abaixo), pelo valor crescente da variável IDHM (seria o x na tabela abaixo), utiliza-se o seguinte código com o dplyr:

arrange(atlas_2013, IDHM)

No R básico, a função equivalente seria:

atlas_2013[order(IDHM), ,drop = FALSE]

dplyr

R básico

arrange(df, x)

df[order(x), , drop = FALSE]

distinct(df, x)

df[!duplicated(x), , drop = FALSE],

filter(df, x)

df[which(x), , drop = FALSE],

mutate(df, z = x + y)

df$z <- df$x + df$y,

pull(df, 1)

df[[1]]

Fonte: https://dplyr.tidyverse.org/articles/base.html

Sobre esse conteúdo

Este conteúdo digital é parte do curso online "Introdução aos Indicadores Sociais com o software R", de autoria do Prof. Ronaldo Baltar e da Prof.ª Cláudia Siqueira Baltar, como atividade do Projeto de extensão "Indicadores sociais como subsídio para o monitoramento e avaliação das ações dos municípios paranaenses em direção à Agenda 2030", vinculado ao ObPPP (Observatório de Populações e Políticas Públicas) e ao InfoSoc (Informática aplicada à Pesquisa Social), ambos projetos do Dept.º C. Soc. - CLCH/UEL.

identificação de município rural ou urbano

pull(df, x)

df$x

rename(df, y = x)

names(df)[names(df) == "x"] <- "y"

relocate(df, y)

df[union("y", names(df))]

select(df, x, y)

df[c("x", "y")], subset()

select(df, starts_with("x")

df[grepl(names(df), "^x")]

summarise(df, mean(x))

mean(df$x), tapply(), aggregate(), by()

slice(df, c(1, 2, 5))

df[c(1, 2, 5), , drop = FALSE]

clique aqui para ver
unique()
subset()
transform()