Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Estatística Material Teórico Responsável pelo Conteúdo: Prof.ª Me. Jéssica Bárbara da Silva Ribas Revisão Textual: Prof.ª Dr.ª Luciene Oliveira da Costa Granadeiro Manipulação de Dados • Introdução; • Entrada de Dados; • Manipulação de Dados. • Permitir que o aluno importe dados de arquivos e manipule os mesmos conforme sua necessidade. OBJETIVO DE APRENDIZADO Manipulação de Dados Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como seu “momento do estudo”; Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo; No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam- bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados; Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus- são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma Não se esqueça de se alimentar e de se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Manipulação de Dados Introdução Em ciência de dados, a tarefa mais importante e usual realizada é a manipulação de dados, pode parecer bobagem, mas cerca de 80% do trabalho de um estatístico ou cientista de dados está na escolha e organização do conjunto de dados a ser processado e/ou visualizado. Segundo Wickham (2017), há um fluxo de tarefas a serem seguidas para que suas análises resultantes tenham bons resultados. Tal fluxo de trabalho, representa- do na Figura 1, tem um looping entre as tarefas manipulação e ou transformação, visualização e modelo até que o trabalho esteja apresentável ao solicitante. Importação Comunicação Visualização Modelo Transformação Análise exploratória Figura 1 – Organização das principais tarefas no processamento dados, considerando a análise exploratória Fonte: Adaptado de Wickhan, 2017 Nesse momento, o principal foco está nas fases de importação e transformação dos dados, pois a complexidade e qualidade dos dados de entrada têm grande influ- ência no alcance do resultado final desejado. Um conjunto de dados podem ser classificados em: estruturado, não estruturado e semiestruturado (AMARAL, 2016). Os dados estruturados, como o nome sugere, possuem uma estrutura rígida que não devem sofrer alterações, por exemplo, tabe- las feitas no Excel, tabelas de Banco de Dados Relacionais. Os dados não estruturados geralmente estão em arquivos em formato de texto (como livros, revistas, páginas da web), imagens, vídeos, áudio, entre outros que precisem de um processo de análise para entender o real conteúdo. Importante! Quase 90% dos dados existentes no mundo são não estruturados (AMARAL, 2016). Você Sabia? 8 9 Os dados semiestruturados são um meio termo entre os dois anteriores e pos- suem um nível de complexidade maior que os anteriores, pois são arquivos com certa estrutura flexível a mudanças, por exemplo: XML (Extensible Markup Language ), JSON (JavaScript Object Notation), RDF (Resource Description Framework) e OWL (Ontology Web Language). Considerando a fonte de dados e como a sua estrutura se apresenta, para ajustá- -la, limpar possíveis “impurezas”, como, por exemplo, duplicidade de registros, é necessária uma estruturação ou, algumas vezes, somente uma reorganização para facilitar a visualização e/ou processamento dos dados, podendo, assim, gerar infor- mações mais precisas. Entrada de Dados Como qualquer outra linguagem de programação, no R, é possível que o usu- ário insira dados nos vetores e variáveis via console. Também é usual o preen- chimento das variáveis com valores aleatórios ou a partir de uma equação ou utilizando a função “seq()”. Contudo, a maneira mais comum de trabalhar com dados no R é por leitura de arquivos ou acessando os dados de uma base de dados. Neste material, iremos tra- balhar com a importação via leitura de arquivos, mas, caso queira testar as demais maneiras de entrada de dados, acesse o link disponível no quadro saiba mais. Dados no R, disponível em: http://bit.ly/2L0DnJg Ex pl or Para a leitura de arquivos TXT, CSV utilizaremos o pacote “readr”, já para a leitura de arquivos XLS ou XLSX, o pacote a ser utilizado é o “readxl” – ambos precisam ser instalados. Por padrão, a leitura e gravação de arquivos no R ocorrerá no Diretório de Trabalho e, para saber qual é o seu diretório de trabalho, vamos utilizar a fun- ção “getwd()”. Conforme apresentado na Figura 2, o diretório de trabalho atual é “C:/Users/jessica/Documents”. Vamos mudar o diretório de trabalho utilizando a função “setwd()”, por exemplo: setwd(“C:/Users/jessica/Documents/disciplina de lingagem estatistica/script”). Note que o caminho até o novo diretório deve estar entre aspas (duplas ou sim- ples) para ser reconhecido como um texto. Outro detalhe importante é a utilização das barras invertidas entre os nomes dos diretórios, pois a linguagem R segue o padrão de Linux de navegação de diretórios. Após a execução do “setwd”, execute novamente o “getwd()”. 9 UNIDADE Manipulação de Dados Figura 2 – Verificação e Alteração do diretório de trabalho no R A utilização do recurso de diretório de trabalho no R não é obrigatória, pois você pode, na hora de abrir um para leitura, indicar um caminho diferente. Mas, por experiência própria, indicar o diretório de trabalho de maneira que os dados e os scripts fiquem organizados no projeto é a melhor estratégia em longo prazo. O RStudio possui um botão para importar um conjunto de dados ou dataset, o “import Dataset”, localizado no terceiro quadrante na aba “Enviroment”, conforme apresentado na Figura 3. Vamos importar um arquivo de texto qualquer (*.TXT) utilizando o pacote “readr”. Após selecionar a opção de importação de arquivo com o “readr”, irá apresentar a tela “Import text Data”, clique no botão “Browser” e selecione o arquivo deseja- do. Após um processamento no quadrante “Data Preview”, irá aparecer uma pré- -visualização do conteúdo do arquivo. No Quadrante “Import Options”, poderá configurar algumas opções de impor- tação, como, por exemplo, a primeira do arquivo poderá ser o nome das colunas, as opções “Delimiter”, para arquivos txt demilitados. Figura 3 – Botão Import Dataset do RStudio No quadrante “Code Preview”, aparecerão as linhas de comandos relacionadas à importação desse arquivo. Copie as linhas e clique no botão “Import”, depois, cole o código fonte da importação de dados no script R. A importação de arquivos XLS e XLSX segue praticamente o mesmo passo a passo, mudando a função para a “read_excel()”. 10 11 Carregando arquivos CSV no R: https://youtu.be/2Dmj28wMOkQ Ex pl or Na aba “Enviroment”, irá apresentar uma nova “variável” contendo o nome do arquivo (ou o nome que você colocou nas opções); na frentedela, irá apresentar um texto informando a quantidade de observações (registros ou linhas) e variáveis (colunas). Isso ocorre porque o objeto contendo os dados importados é do tipo Data Frame. Data Frame O Data Frame é a estrutura de dados mais utilizada (e, diga-se de passagem, a mais importante) no R, pois ela é uma estrutura de dados bidimensional, porém, cada coluna pode conter tipos de dados diferentes. Pense nele como uma espécie de tabela para os dados. Para criar um Data Frame, basta utilizar a função data.frame(), conforme exem- plo abaixo: dfTeste <- data.frame(id=c(1:3), nome=c(“Ana”,”Maria”,”Joana”), idade=c(10,5,15)) class(dfTeste) View(dfTeste) Agora, vamos interpretar os parâmetros passados para a função data.frame do exemplo. Cada parâmetro é um vetor; o primeiro vetor foi nomeado id e é do tipo numérico, o segundo parâmetro é o nome, do tipo texto (caractere); e a idade é do tipo número (mas poderia ser caractere). Após a criação do data frame, ele foi salvo no objeto dfTeste; quando foi execu- tado, a função class apresentou o valor “data.frame” e a função “View()”abriu uma aba no primeiro quadrante, listando os valores do data frame. Você pode acessar determinadas linhas ou colunas do data frame utilizando o operador “$” ou os [linha, coluna], conforme mostrado na Figura 4. Quando utilizado o operador “$”, serão listados os valores da coluna. Quando mostramos o vetor nome, a primeira linha apresenta os dados na sequência salva, porém, apareceu a opção “Levels”. Isso ocorreu porque há a opção “stringAsFactors= TRUE”, e tem como saída os valores de texto em ordem alfabética. Quando a pesquisa foi realizada por um ou mais registro(s) (linha), sempre aparecerá o cabeçalho (nome dos vetores) junto com as linhas resultantes. Na pesquisa Figur a 4 – Acesso aos dados do Data Frame 11 UNIDADE Manipulação de Dados utilizando [linhas, colunas], é possível preencher o valor das linhas e/ou colunas com um intervalo (operador “:”); por exemplo, queremos todos os campos dos registros 1 e 2: dfTeste[1:2,]; ou todos os registros, mas somente as colunas 2 e 3: dfTeste[,2:3]. O data frame não é uma estrutura de dados de tamanho fixo, sempre é possível incluir e excluir linhas e colunas durante a execução do script. A função para incluir coluna é a “cbind()” e para linhas é “rbind()”. A sintaxe para incluir uma nova coluna no data frame é: dataFrame <- cbind(dataFrame, colunas). A função rbind: dataFrame <- rbind(dataFrame,vetor1=valor,vetor2=valor,...,vetorN=valor) Para excluir linhas ou colunas se faz necessário realizar uma pesquisa conten- do o novo valor do data frame e salvá-lo. Por exemplo, dataFrame[-2,], não irá apresentar a segunda linha do data frame, assim, podemos remover essa linha do objeto atribuindo o resultado da pesquisa, desta maneira: dataFrame <- dataFrame[-2,] Quando se trata de data frames, a organização dos dados pode ser realizada com diversas funções nativas do R, além das funções próprias para manipulação do data frame. Veja outros exemplos de funções para manipulação de data frame no link disponível no quadro Explore. Data Frame: http://bit.ly/2KWIKJz Ex pl or Manipulação de Dados Apesar das várias maneiras de organizar os dados em um data frame, existe um pacote específico para essa tarefa, o “dplyr”; contudo, para uma boa utilização de todas as funções, instale também o pacote “tidyr”. O “dplyr” é uma gramática de dados, que possui um conjunto de “verbos” rela- cionados a facilitar as tarefas mais comuns na manipulação de dados, e suas prin- cipais funções são: select(); filter(); mutate(); arrange(); group_by(); summarise(). 12 13 Os dados utilizados no exemplo, daqui em diante, são dados públicos disponibili- zados no Atlas do Desenvolvimento Humano no Brasil1, a base de dados é a “Radar IDHM (PNADS 2011-2015)”, contendo vários dados socioeconômicos, como, por exemplo, expectativa de vida, taxa de mortalidade, índice de Gini e IDH do Brasil, estados e algumas capitais. Select() A primeira coisa a se fazer na base de dados, após importar, é realizar uma bus- ca nos dados; para tanto, será utilizada a função “select()”. A base de dados utilizada possui 68 colunas e 190 registros, contudo, a busca foi restrita aos indicadores mencionados anteriormente, conforme mostra a Figura 5. Figura 5 – Busca na base de dados utilizando a função “Select()” Note que a busca é restrita às colunas da base de dados; na Figura 5, houve uma busca dita positiva, onde foram mencionados os campos desejados, mas o inverso também é possível de se realizar. Caso desejássemos todos os campos, exceto a “ESPVIDA”, o comando seria: “idh %>% select(-ESPVIDA)”. Filter() Enquanto a função “select()” realiza busca nas colunas, a função “filter()” realiza um filtro nas linhas; para tanto, devemos utilizar operadores lógicos e/ou condicionais. Figura 6 – Função “Filtro()” com operadores lógicos e condicionais 1 <http://bit.ly/2MvNBEU>. 13 UNIDADE Manipulação de Dados No exemplo da Figura 6, foi realizado um filtro na primeira busca, o filtro pega somente os estados de Santa Catarina e Rio Grande do Sul quando o IDH está maior que .5, houve um retorno de 10 registro para esta condição. Um ponto a ser observado foi a utilização do operador %in% em vez de “==”, isso porque a entrada é um vetor de condições e não uma única condição. Mutate() Com a função “mutate()”, é possível criar e/ou incluir colunas no dataset. Por exemplo, algumas vezes, é necessário inserir variáveis para sinalizar ou identifi- car alguns dados, as chamadas variáveis dummyes, conforme exemplificado na Figura 7. Foram inseridas duas colunas na consulta: a primeira, contendo valores zeros, e a segunda, contendo valor 1. Figura 7 – Inclusão de colunas utilizando o função “mutate()” Atente para o fato de que é possível salvar valores calculados entre as colunas, ou inserir novos vetores contendo dados de outras fontes (base) de dados, que são necessários para a geração da análise atual. Arrange() A função “arrange()” deve ser utilizada para ordenar os resultados, seguindo o critério indicado, por exemplo, ordenar os resultados pelo “NOME_AGREGA” em forma crescente ou decrescente. A Figura 8 apresenta o exemplo da ordenação dos resultados utilizando o co- mando arrange(), ordenando pelo campo “IDHM”, no objeto “tst5” de forma cres- cente e no objeto “tst6” de forma decrescente. 14 15 Figura 8 – ordenação dos resultados, função “arrange()” Group_by() e Summarise() Geralmente, as funções “group_by()” e “summarise()” são utilizadas juntas, pois a primeira função separa a base nos grupos seguindo as regras estabelecidas, a se- gunda função sumariza (ou agrega) os grupos aplicando funções matemáticas como media, soma, desvio padrão ou simplesmente conta frequência de determinado item. Como nós agrupamos os dados e sumarizamos os resultados, ocorreu uma dimi- nuição dos registros resultantes na busca, conforme mostra a Figura 9. Ao realizar essa tarefa, diminuímos o nível de detalhamento dos dados, como se estivéssemos parando de trabalhar com microdados ou dados brutos e passamos a trabalhar com dados um pouco mais limpos (ou lapidados). Para contar a frequência de determinado item na base de dados, podemos uti- lizar juntamente com o “group_by()” e “summarise()” a função “count()”. Apesar de as funções “group_by()” e “summarise()” estarem ligadas uma com a outra, é possível utilizar a “summarise()” para criar novas colunas (variáveis) como a função mutate(), contudo, o valor delas seria a sumarização de um conjunto de variáveis. Figura 9 – Agrupamento e sumarização da base de dados 15 UNIDADE Manipulação de Dados Rename() Para alterar o nome das colunas, devemos utilizar a função “rename()”, a sin- taxe desse comando está exemplificada na Figura 10, onde deve ser indicada a base de dados, após o operador “%>%”, então a função “rename(NovoNome = NomeAntigo,....,fim)”. Figura 10 – Mudançade nome das colunas utlizando a função “rename()” Operador %>% Até este momento, utilizamos o operador %>% sem entender por que ele está naquele lugar, ou para que ele está sendo utilizado. Na realidade, esse operador é utilizado para fazer com que uma opção ocorra atrás da outra em sequência sem problema. Por exemplo, o resultado de uma busca é o parâmetro de entrada para outra função como a de ordenação ou filtro dos dados. No comando: idh >% select(ANO,NOME_AGREGA,ESPVIDA,MORT1). A base de dados IDH está sendo passada como parâmetro para a função select buscar os campos necessários. Quando realizamos um filtro, o operador >% veio antes do comando filtro para indicar que a entrada para o mesmo vem da função “select()”. Esse operador torna a manipulação de dados prática, pois permite que os blocos de comandos fiquem próximos e organizados, facilitando, assim, a leitura e manu- tenção do script. Tibble Você notou que todos os retornos das operações realizadas com o pacote “dplyr”, em uma posição antes da lista dos dados, costuma aparecer a palavra “Tibble” juntamente com os valores numéricos indicando a quantidade de linhas e colunas retornados. Isso ocorre porque o data frame de entrada foi convertido durante o processamento das funções no tipo de dados Tibble. Um Tibble é definido como um data frame com método de impressão mais adequado, além do fato de uma maior facilidade e estabilidade ao se trabalhar com grandes volumes de dados textuais (caractere e/ou String). 16 17 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Leitura CURSO-R – Importação de dados http://bit.ly/2KVEKJg CURSO-R – Manipulação de dados http://bit.ly/2KYdTfN FULLJOIN – Manipulação de Dados- Parte 1: Dplyr básico http://bit.ly/2LcDUrV WIKIR – Manipulando dados com dplyr e tidyr http://bit.ly/2L2gsgz 17 UNIDADE Manipulação de Dados Referências AMARAL, F. Introdução à Ciência de Dados: mineração de dados e big data. Alta Books Editora, Rio de Janeiro, Brasil, 2016. CRAN, The Comprehensive R Archive Network. Disponível em: <https://cran. r-project.org>. Acesso em: 05/2019. DA SILVA, L. A.; PERES, S. M.; BOSCARIOLI, C. Introdução à mineração de dados: com aplicações em R. Elsevier editora LTDA, Rio de janeiro, Brasil, 2017. ESTATISTIC BERKELEY, Department of Statistic Berkeley. Factors in R. Disponível em: <https://www.stat.berkeley.edu/~s133/factors.html>. Acesso em: 06/2019. FERREIRA, E.; LISBOA, W. Introdução ao R. Disponível em: <https://bookdown . org/wevsena/curso_r_tce/curso_r_tce.html>. Acesso em: 06/2019. OLIVEIRA, P. F. de; GUERRA, S.; MCDONNEL, R. Ciência de Dados com R – Introdução. Brasília: IBPAD, 2018. Disponível em: <https://www.ibpad.com.br/ o-que-fazemos/publicacoes/introducao-ciencia-de-dados-com-r/>. WICKHAM, H. R for Data Science. O’Reilly, 2017. Disponível em: <https://r4ds. had.co.nz>. ________. Advanced R Syle Guide. Disponível em: <http://adv-r.had.co.nz/Style. html>. Acesso em: 05/2019. 18
Compartilhar