Análise de dados na prática com R Studio

Este artigo apresenta os principais conceitos sobre big data, big data analytics (análise de dados) e estatística descritiva.

Fique por dentro
Esse artigo é útil para estudantes e profissionais que desejam conhecer mais sobre a área de análise de dados, tanto na teoria como na prática. Análise de dados é utilizada em diferentes setores de nossas vidas, como saúde, segurança, eleições, marketing entre outras.

Este artigo irá tratar os principais conceitos sobre big data, big data analytics (análise de dados) e estatística descritiva. Além disso, irá discorrer sobre uma das ferramentas open source existentes no mercado para realizar análise de dados, o R Studio.

As empresas estão investindo cada vez mais nesse segmento e em profissionais, para melhorar seus processos e facilitar tomadas de decisão. A análise de dados também é muito utilizada para algoritmos de aprendizado de máquina.

O volume de dados gerados, coletados e armazenados cresce constantemente, assim, novos métodos, tecnologias e ferramentas são desenvolvidas para possibilitar que as empresas e gestores possam analisar essa grande quantidade de registros coletados, auxiliando nas tomadas de decisão, estratégias de marketing ou até mesmo na identificação de fraudes entre outros casos.

Saiba mais Relacionado Cursos de Engenharia de Software

Atualmente existem diferentes ferramentas para análise de dados, tanto softwares privados, como SAS, SAP, QlikView entre outras, quanto softwares livres, como Pentaho, Talend, Jaspersoft, R entre outras. Uma observação a ser feita é sobre o R. Essa ferramenta durante muito tempo foi utilizada por especialistas na área de estatística, isso porque o objetivo desse software era atender a essa classe. Mas, com o passar dos anos, diversos desenvolvedores começaram a utilizar essa ferramenta, tornando-a atualmente uma das ferramentas mais utilizada para analisar grandes quantidades de dados.

Pelo alto preço das ferramentas pagas nessa área, empresas, desenvolvedores entre outros profissionais procuram ferramentas open source bem sólidas para realizar suas análises. Nessa imensidão de opções de softwares livres, muitas vezes a maior dificuldade que se tem é em escolher e surge a seguinte pergunta: “qual a melhor? ”. Como todo profissional sabe, não existe a melhor ferramenta ou a melhor linguagem de programação, mas sim, as mais ideais para os objetivos a serem alcançados.

Para analisar dados, apenas conhecer linguagens de programação ou ferramentas não é o suficiente, o estudante ou profissional que deseja atuar nessa área deve saber um pouco de cada coisa, além de conhecer as ferramentas já citadas, banco de dados, metodologias, regras de negócios e estatística. Ter conhecimentos de métodos estatísticos, gráficos, entre outros, é essencial para realizar uma boa investigação dos dados, mesmo as ferramentas muitas vezes possuindo funções para realizar os diferentes cálculos existentes, o profissional deve saber quais métodos irá utilizar para cada situação que se encontra.

A estatística para análise de dados, algoritmos de aprendizado de máquina, algoritmos de inteligência artificial entre outras áreas em ciência de dados, é essencial. O profissional que atua nessa área irá a todo momento se deparar com situações em que irá precisar aplicar métodos e/ou gráficos estatísticos, seja para tomar alguma decisão, ou para identificar o que acontecer em determinado caso, ou para ir mais adiante, como aplicar métodos de aprendizado de máquina.

O surgimento das linguagens de programação, ferramentas e o crescente uso da estatística para analisar os dados, deu-se por conta do constante crescimento do volume dos dados. Essa grande quantidade de dados pode ser um big data, um conceito bem antigo, mas que vem sendo divulgado e utilizado muito fortemente nos últimos anos. Muitos ainda confundem do que realmente se trata big data, se a empresa realmente possui um big data ou possui apenas um grande conjunto de dados armazenados.

Esse artigo tem como objetivo apresentar os principais conceitos de big data, análise de dados, estatística descritiva e a ferramenta a ser utilizada para análise de dados, nesse caso a linguagem de programação R, através da IDE RStudio.

Big Data

As empresas armazenam dados muito antes de o termo big data explodir mundialmente. O que diferencia antigamente dos dias atuais é a capacidade de trabalhar com esses dados, transformá-los em conhecimentos úteis para as organizações.

Muitos confundem o fato de que se ter muitos dados armazenados já se pode dizer que se tem um big data, e essa ideia muitas vezes está errada. Big data é uma estratégia de gerenciamento de informações holística que incluem e integra muitos tipos de dados e gerenciamentos de dados juntamente com dados tradicionais. Doug Laney, um famoso analista que articulou a definição de big data, define que big data possui três V’s:

Essas três características são os principais pilares para possuir um conjunto de dados do tipo big data, ou seja, quando se apenas possui um grande volume de dados armazenados nem sempre se tem um big data, mas sim apenas um conjunto de dados grande.

Com o crescente número de dispositivos que irão fazer parte do “mundo” IoT, a utilização do big data irá crescer consideravelmente, assim, a utilização de técnicas, ferramentas e profissionais para análise de dados também irá crescer.

Data Analytics (Análise de dados)

Com o crescente número de dados armazenados, troca de informações constantes e diferentes tipos de dados, é necessário ter ferramentas e técnicas para analisá-los. Análise de dados é a atividade de transformar um conjunto de dados em informações, com o objetivo de poder conhecê-los melhor. Ao analisar os dados, tem-se uma melhor compreensão deles, então, ao aplicar técnicas de análise para predição ou descrição, é possível verificar o volume de dados disponível, a sua qualidade, os ruídos e até mesmo dados que estão faltando para obter insights de qualidade.

O objetivo de data analytics é simples e direto, utilizar um conjunto de ferramentas e métodos para coletar, organizar e analisar os dados, para obter insights valiosos sobre tendências, comportamento e melhorar os processos de trabalho. Assim, é possível que as organizações tomem decisões mais precisas e, sobretudo, antecipadas à concorrência.

Ainda dentro do campo de análise de grande conjunto de dados, há quatro tipos de análise que se destacam pela usabilidade e potencialidade dos resultados, são elas: preditiva, prescritiva, descritiva e diagnóstica. Em seguida, cada tipo será exemplificado:

Além desses conhecimentos, o estudante ou profissional que tem interesse em ingressar na área de análise de dados e as áreas correlatas, como BI, aprendizado de máquina etc., tem que possuir um bom conhecimento em estatística. A seguir, serão apresentados os principais conceitos de estatística e alguns dos métodos mais utilizados na hora de realizar análise de um banco de dados.

Estatística

Estatística é a ciência que faz a coleta, organização e interpretação de dados e, a partir deles, permite conhecer quais são os mais influentes antes de tomar decisões importantes. Na estatística descritiva, os dados se dividem em variáveis qualitativas (categóricos) e variáveis quantitativas (numéricos):

Outros conceitos importantes a se saber na área de estatística são população e amostra. A população é o conjunto inteiro dos dados, seja ele em bancos de dados, arquivos entre outros. A amostra é uma parte da população, ou seja, divide-se a população para se ter apenas alguns dados para atender a algum objetivo, manipulando-se apenas essa parte dos dados. Exemplo: considerando que uma base de dados com todos os funcionários de uma determinada empresa é uma população, ao se desejar ter apenas dados dos funcionários com idade entre 30 e 40 anos, tem-se uma amostra dela.

Após conhecer esses conceitos, apresentaremos agora alguns dos principais cálculos utilizados para descrever os dados:

Medidas de tendência central: utilizado quando se deseja resumir os dados de uma distribuição utilizando apenas números, assim, recorre-se a medidas de tendência central:

Outro recurso estatístico muito utilizado é a tabela de frequência. Essa tabela é utilizada para resumir o conjunto de dados de forma simples para entendimento. Essa tabela organiza e resume as categorias de valores juntamente com a contagem (ou frequência) dos números de valores que se enquadram em cada categoria ou classe. Por exemplo, podemos ter uma tabela com a quantidade de funcionários dividido por nível de escolaridade, conforme a Tabela 1.

Nível escolaridade Frequência (quantidade)
Nível fundamental 7
Nível médio 10
Nível superior 8
Pós-graduação 5

Tabela 1. Exemplo de tabela de frequência.

Estes são alguns dos conceitos necessários para se trabalhar com análise de dados. Por ser uma área relativamente nova e que está em constante crescimento, com frequência são descobertos novos algoritmos, novas técnicas, novas ferramentas que surgem para acrescentar mais agilidade e facilidade ao se trabalhar com ela. Também é importante citar que há uma grande quantidade de conceitos, ferramentas, métodos estatísticos e probabilidade, que são necessárias serem estudadas. Em seguida será apresentado um exemplo prático do que foi discutido até o momento.

Analisando dados com R Studio

Nesse tutorial serão realizadas todas as etapas necessárias para realizar análise de dados, ou seja, coleta/seleção dos dados, organização, transformações, aplicação dos métodos estatísticos, análise e apresentação através de gráficos. Para realizar esse processo será utilizada a ferramenta open source RStudio, uma ferramenta que está sendo muito utilizada por analistas de BI, cientista de dados entre outros profissionais.

O software RStudio utiliza a linguagem R, uma linguagem de programação para geração de gráficos e cálculos estatísticos. O RStudio foi desenvolvido por JJ Allaire. O software está disponível em duas edições: RStudio Desktop, executado localmente na máquina como um aplicativo desktop e RStudio Server, que permite acessá-lo remotamente via um navegador web. O RStudio está disponível para diferentes SOs (sistemas operacionais), como Microsoft Windows, Mac OS X e GNU/Linux. O RStudio é desenvolvido na linguagem de programação C++.

Antes de instalar o aplicativo RStudio, é necessário instalar o R. Para isso, é necessário acessar o site oficial do R, cran.r-project (ver seção Links). Esse site possui a documentação da linguagem de programação R, das bibliotecas do R, links dos repositórios entre outros itens importantes para os usuários. Para fazer o download, basta acessar o site r-project, ir em download R for Windows, em seguida, em base e, por fim, em Download R “versão” for Windows, conforme demonstra a Figura 1. Na elaboração deste artigo, a versão mais atual era a 3.3.2. A instalação do R é bem intuitiva, proceda com a instalação padrão.

Figura 1. Página de download do R para Windows

Após finalizar o download e a instalação do R, será realizado o download e instalação do RStudio. Para realizar isso, basta acessar o site oficial e clicar em RStudio “versão” – Windows vista/7/8/10, conforme a Figura 2. Na elaboração deste artigo, a versão mais atual do programa era a 1.0.44.

Figura 2. Página oficial para download do RStudio

Na tela inicial do RStudio, conforme mostra a Figura 3, temos no lado direito a aba console, onde são apresentadas as informações da versão do R sendo utilizada, informações sobre licença e alguns comandos de auxilio como help(), q() entre outros. É nesse espaço que iremos executar nossos comandos. Ainda na Figura 3, na parte superior à direita, tem-se uma aba environment, que apresenta todos os objetos, variáveis e funções criadas e uma outra aba history, que armazena todos os comandos executados pelo usuário. Por fim, na parte inferior direita da figura, tem-se várias abas: file (mostra todos os arquivos do diretório), plots (aba para apresentar os gráficos gerados), packages (lista de pacotes disponíveis para baixar), help (aba para apresentar documentação de alguma função, quando se utilizar o comando de help) e viewer (aba para visualização de determinados gráficos).

Figura 3. Tela inicial do software RStudio

Como citado anteriormente, na aba console é possível executar comandos, por exemplo, somar dois números. Para executar o comando é necessário apenas digitar e teclar enter. Logo abaixo do comando será apresentado o resultado do código executado, conforme mostra a Figura 4.

Figura 4. Resultado após executar comando na aba console

Há outra opção de se executar comandos no RStudio. Na aba console é possível executar um comando por vez, ou seja, o usuário deve digitar cada comando que deseja executar. A outra opção é criar um script, assim, é possível inserir diversos comandos e posteriormente executar todos de uma vez. Para iniciar um script é necessário ir na opção file, em seguida em R Script. Após executar esses passos, será aberta uma aba em branco, ela será o espaço para inserir os comandos a serem executados.

Antes de se iniciar a criação de um script, salve-o em um diretório de preferência. Após salvar o script, insira o mesmo comando que foi utilizado na Figura 4, para somar dois números. Para executar tem-se a opção de clicar em Run. Para executar o script, devemos estar atentos a algumas observações:

Figura 5. Execução de várias linhas ao mesmo tempo.

Em seguida será realizada uma análise de dados utilizando o RStudio, realizando as etapas de coleta, organização e exploração dos dados. Os dados utilizados neste artigo estão disponíveis no site Kaggle (BOX 1). O conjunto de dados trata sobre os personagens do desenho Pokémon, possuindo os nomes, tipo, valores de poder de ataque e defesa, se é um Pokémon lendário entre outras informações (ver seção Links).

BOX 1. Site Kaggle
O site Kaggle é um dos mais conhecidos no mundo para competições de modelagem/análise preditiva. Funciona da seguinte maneira: empresas postam problemas que gostariam de resolver para seus negócios e, diversos usuários, incluindo de estudantes a analistas sênior, tentam solucionar esses problemas. Essas empresas fornecem prêmios para a melhor solução, sendo esses prêmios de diferentes valores, já houve casos com premiação de US$ 30.000,00 à US$ 100.000,00. Além disso, o site também possui diferentes bases de dados abertas para download, resoluções de problemas em diferentes linguagens de programação, dentre elas, R e Python. Além disso, os usuários postam suas soluções para diferentes análises.

Existem diferentes maneiras para realizar a importação dos dados, pode ser diretamente de um arquivo na máquina, ou de um banco de dados, ou diretamente do site, etc. Neste artigo será demonstrada a extração dos dados diretamente de um arquivo local.

No código a seguir é demonstrada a exportação dos dados de um arquivo CSV:

## Ler dados e inserindo-os em um obj pokemon <- read.csv("caminhoPasta/Pokemon.csv",header = T, sep = ",")

Nessa listagem está sendo utilizada a função read.csv() e os argumentos passados são: o caminho onde está armazenado o arquivo, se o arquivo possui cabeçalho (TRUE/FALSE) e o tipo de separador do arquivo, neste caso a vírgula (“ , ”).

Ao executar esse comando, os dados serão armazenados em um objeto chamado pokemon. Mesmo o objeto não existindo, o próprio R cria o objeto ao executar algum comando. Em seguida será executada a função head(). Essa função apresenta as primeiras linhas do objeto, assim poderemos visualizar o nome das colunas e seus dados, conforme a Figura 6.

Figura 6. Resultado após executar comando head

Para visualizar todos os registros do objeto, temos duas maneiras: executando a função View (nomeObjeto), ou clicando em cima do objeto na aba Environment. Após executar qualquer um dos dois procedimentos, será aberta uma nova aba com todos os registros do objeto, como é demonstrado na Figura 7.

Figura 7. Visualização completa do objeto pokemon

Criar uma tabela de frequência é simples e rápido utilizando o RStudio. Só é necessário selecionar a coluna do objeto que se deseja quantificar e executar a função table(), como é mostrado no código a seguir:

## criar tabela de frequência table(pokemon$Type.1)

Nesse código, foi selecionada a coluna Type.1 para criar a tabela de frequência, ao executar o código, será criada uma tabela na aba console, conforme mostra a Figura 8. Nesse caso, como foram gerados poucos registros para tabela de frequência, dezoito no total, o resultado pode ser de fácil leitura e entendimento. Contudo, podem haver casos nos quais podem ser gerados 100, 200, 500 e muito mais registros, então a leitura e entendimento dessa tabela diretamente na aba console pode ser difícil de ser feita e, caso o desenvolvedor necessite utilizar algum desses valores da tabela, ele terá que anotar os valores e precisará reexecutar a função toda vez que precisar de algum valor dessa tabela. Assim, esse não é o método mais dinâmico e prático.

Figura 8. Resultado após executar o comando table()

Também é possível salvar essa tabela em um objeto, conforme é demonstrado na Listagem 1. Nela é utilizada uma função chamada as.data.frame, que converte o resultado em forma de tabela. Ao abrir esse objeto, teremos colunas com o nome padrão criadas pela própria função. Para renomeá-las basta executar o código.

Listagem 1. Código para gerar tabela de frequência, salvando em um objeto e renomear as colunas

## salvar tabela de frequencia em um objeto tabFreq <- as.data.frame(table(pokemon$Type.1)) ## renomear nome de colunas da tabela names(tabFreq) <- c("tipoPokemon","frequencia")

Ainda na Listagem 1, temos a função names(), que indica que desejamos selecionar os nomes das colunas e o “c(“...”)” permitirá definir os novos nomes das colunas. É importante citar que ao alterar o nome das colunas do objeto, a quantidade dos valores em c(“nome”,”nome”...) deve ser a mesma da quantidade de colunas do objeto, se houver um número diferente acontecerá um erro.

No RStudio existem algumas funções que já vem instaladas, como as que foram utilizadas até aqui, mas existem outras em que há necessidade de baixar, instalar e habilitar o pacote para poder utilizar as funções, por exemplo, o pacote ggplot2 para construir gráficos. A função install.packages() realiza o download e a instalação do pacote. A função library() habilita o pacote para utilizar as funções dele.

A partir de agora iremos criar alguns gráficos da base de dados que está sendo utilizada. O primeiro gráfico a ser gerado será um gráfico de barra a partir do objeto da tabela de frequência que foi criado anteriormente:

## criando gráfico de barra ggplot() + geom_bar(data = tabFreq, aes(x = tipoPokemon, y = frequencia), stat = "identity")

A função ggplot() indica que desejamos criar gráfico utilizando função do pacote ggplot2, instalado anteriormente. A função geom_bar() é o tipo de gráfico que será gerado e possui alguns parâmetros: data, qual objeto será utilizado, aes(x = ..., y =...) – essa função faz um mapeamento dos dados para o eixo X e Y - , stat indica a posição da barra no gráfico. Existem diversos gráficos com geom, como geom_abline(), geom_area() e geom_boxplot(). O sinal de mais (+) indica concatenação da função ggplot() e geom_bar(). Na Figura 9 é possível observar o gráfico gerado após executar o comando informado.

Figura 9. Gráfico de barras

O gráfico apresentado não está muito legível, isso acontece porque são muitos atributos no eixo X e a dimensão da aba plot é pequena para gerar esse gráfico. Para solucionar esse problema, o RStudio possibilita aplicar um zoom no gráfico, através do botão ZOOM na parte superior da tela. Nela é possível observar uma grande variação da quantidade por tipo de Pokémon. Ao analisar esse gráfico, é possível notar uma grande quantidade de Pokémon do tipo water, seguido por Pokémon do tipo normal. E o tipo de Pokémon que tem menos quantidade é do tipo fying.

O software também permite salvar o gráfico em uma imagem ou PDF, para isso basta clicar no botão export, e será aberta uma janela com as opções para salvar o gráfico. Na Figura 10, as opções disponíveis ao exportar o gráfico para imagem são: image format (formato que será salva a imagem), width/height (dimensões de largura e altura da imagem), directory (pasta onde a imagem será salva), file name (nome da imagem). Após configurar todas essas opções, basta clicar em save.

Figura 10. Janela de configuração para exportar gráfico

Em seguida serão gerados gráficos utilizando os conceitos já abordados até o momento sobre médias. Para gerar a média de um campo, pode-se utilizar a função mean(): conforme o código a seguir:

## media mean(pokemon$Attack)

Neste exemplo, está sendo gerada a média do campo Attack, mas o que será feito em seguida é um pouco diferente. O objetivo agora é gerar a média do campo Attack por tipo do Pokémon, coluna Type.1. Antes de gerar essa média, é necessário instalar um pacote. A função ddply() não vem instalada por padrão, então é necessário baixar, instalar e ativar o pacote plyr, conforme a Listagem 2.

Listagem 2. Código para baixar, instalar e ativar pacote

## instalar pacotes a serem utilizados install.packages("plyr") ## ativar pacote que ser utilizado library(plyr)

Após realizar o procedimento de instalação e habilitar o pacote que será utilizado, todas as funções que estão nesse pacote estarão disponíveis. Após isso, somente é necessário digitar o nome da função e inserir seus parâmetros, então será gerada a média por tipo do Pokémon:

## media de ataque por tipo de pokemon mediaAtaque <- ddply(pokemon, ~Type.1, summarise, mean = mean(Attack))

A função ddply() aplica uma determinada função, nesse caso será a média, para uma coluna da tabela, nesse caso a Type.1 do Pokémon. Essa função recebe como parâmetros o objeto com os registros e o campo/colunas do objeto que se deseja. Antes do nome da coluna tem-se o sinal (~), utilizado para indicar para a função que é uma coluna que pertence ao objeto, nesse caso pokemon. Tem-se ainda os parâmetros: o tipo de agrupamento nesse caso summarise e a função a ser aplicada, a média da coluna Attack. Então, será calculada a média de ataque para cada tipo de Pokémon do objeto que está sendo utilizado. Ao selecionar a opção view no objeto, é possível observar que há uma coluna Type.1 e outra coluna mean, ou seja, a média de ataque para cada tipo de Pokémon, como é demonstrado na Figura 11.

Figura 11. Visualização do objeto mediaAtaque

Em seguida será criado um gráfico com a média de ataque para cada tipo de Pokémon. O código a seguir realiza essa tarefa:

## grafico para média de ataque por tipo de pokemon ggplot() + geom_bar(data = mediaAtaque, aes(x = Type.1, y = mean), stat = "identity") + ggtitle("Media de ataque por Tipo de pokemon")

Observe que estamos utilizando o parâmetro data e também estamos inserindo o título na parte superior do gráfico utilizando a função ggtitle(“titulo”). O resultado dessa função pode ser observado na Figura 12.

Figura 12. Gráfico de média de ataque por tipo de Pokémon

Ao realizar a análise desse gráfico, é possível observar que o valor de média de ataque por tipo de Pokémon é bem semelhante, somente um se destaca dentre todas as médias de ataque, o tipo Dragon.

Recomendamos para esse artigo que o leitor crie nesse momento a média de defesa por tipo de Pokémon. Esse processo é semelhante ao feito anteriormente, média de ataque por tipo de Pokémon. De toda forma, a resolução do desafio encontra-se no final do artigo.

Após criar a média de ataque e defesa por tipo de Pokémon, iremos combinar os dois objetos em um único objeto. A função para realizar esse procedimento é a cbind(obj1, obj2). Essa função combina dois objetos por colunas, ou seja, se um objeto possui duas colunas e outro possui duas colunas também, ao utilizar a função cbind, o objeto final terá quatro colunas. O código a seguir realiza esse procedimento combinando os objetos mediaAtaque e mediaDefesa em um único objeto. A mediaDefesa foi gerada no desafio, ou seja, o nome desse objeto será o que o você escolher, então, ao executar os códigos seguintes, apenas troque o nome mediaDefesa pelo o nome que você utilizou.

## Inserindo mediaAtaque e medidaDefesa em um mesmo objeto media <- cbind(mediaAtaque, mediaDefesa[,2])

Esse procedimento não é trivial, dependerá do objetivo de quem está analisando os dados. Como o objetivo nesse momento será fazer algumas comparações de ataque e defesa, isso se fez necessário. Na função cbind(), observa-se uma diferença de sintaxe no objeto mediaDefesa[,2], essa sintaxe significa que se deseja recuperar todas as linhas e somente a segunda coluna do objeto mediaDefesa. Esse procedimento se chama slice, e é muito realizado para analisar dados, aplicar algoritmos de aprendizado de máquina entre outras atividades na área de ciência de dados. Também é possível fazer o slice do objeto pelas linhas, bastando para isso inserir o número da linha que se deseja, então a sintaxe ficaria objeto[2,], indicando que se deseja recuperar a linha dois e todas as colunas do objeto, ou objeto[10,2], indicando que se deseja recuperar a linha dez e a coluna dois do objeto.

Esse procedimento se faz necessário, porque a primeira coluna de ambos os objetos é idêntica, ou seja, não há necessidade de possuir no mesmo objeto duas colunas com os mesmos valores. Após executar o código, o objeto final ficará como é demonstrado na Figura 13.

Figura 13. Visualização do objeto com média de ataque e defesa

É possível observar nessa figura que os nomes das colunas não são nada intuitivos, então, é necessário modificar o nome delas para facilitar futuros procedimentos, seja para criar novos objetos, cálculos ou para gerar gráficos. Este é outro procedimento muito utilizado ao realizar análise de grandes quantidades de dados. Para alterar o nome das colunas do objeto, o código a seguir pode ser utilizado:

## Alterando o nome das colunas do objeto names(media) <- c("tipo", "mediaAtaq","mediaDef")

O objetivo agora é gerar um gráfico com as duas médias, ataque e defesa, que estão em um único objeto, chamado media. Mas para isso é necessário alterar este objeto. A alteração consiste em transformar as colunas em linhas. No RStudio, existe um função para fazer esse processo de forma fácil e rápida, a função chamada melt(). Para utilizar essa função é necessário baixar, instalar e habilitar outro pacote, o reshape2, conforme as linhas 2 e 3 da Listagem 3. Ainda nessa listagem, na linha 4, é demonstrado o código para realizar procedimento de transformar as colunas em linhas do objeto que se deseja, neste caso o objeto media.

Listagem 3. Código para instalar e habilitar pacote reshape2 e transformar as colunas em linhas

1 ##instalando e habilitando pacote 2 install.packages("reshape2") 3 library(reshape2) 4 5 ## transformando colunas em linhas 6 mediaAtqDef <- melt(media, id = c("tipo"))

A função melt() recebe alguns parâmetros: o objeto que se deseja realizar a alteração e o id. Esse campo indica qual coluna desejamos preservar e vai alterar todas as outras, transformando-as em linhas. Em seguida, o resultado será salvo em um novo objeto, o mediaAtqDef. Ao abrir o objeto é possível observar que o objeto possui três colunas: tipo, variable e value. Em seguida será alterado o nome das colunas do novo objeto criado conforme o código a seguir:

##Alterando nome colunas do objeto mediaAtqDef names(mediaAtqDef) <- c("tipo","ataq_def", "valor")

A Listagem 4 possui o código para gerar um gráfico com ambas médias, ataque e defesa. A função é semelhante à que já utilizamos anteriormente, com uma alteração nos argumentos, o fill que define a cor das barras. Nesse caso serão duas cores, uma para média de ataque e outra para média de defesa. Em nosso exemplo, foi inserido o nome da coluna que se deseja, assim, o próprio R definirá as cores automaticamente. Temos também o argumento position que define a posição das barras, se ficarão uma em cima da outra, conforme a Figura 14 ou uma ao lado da outra, conforme a Figura 15. Na Listagem 4 é demonstrado o código para gerar o gráfico com uma barra em cima da outra e na Listagem 5 temos o código para gerar o gráfico com uma barra ao lado da outra.

Listagem 4. Código para gerar gráfico com barras uma em cima da outra

## grafico de barra com media de ataque e defesa por tipo de pokemon. Modelo ## com uma barra em cima da outra ggplot(data = mediaAtqDef) + geom_bar(aes(x = tipo, y = valor,fill = ataq_def), stat = "identity") + ggtitle("Media de ataque e defesa por Tipo de pokemon")

Listagem 5. Código para gerar gráfico com barras uma ao lado da outra

## grafico de barra com media de ataque e defesa por tipo de pokemon. Modelo ## com uma barra ao lado da outra ggplot(data = mediaAtqDef) + geom_bar(aes(x = tipo, y = valor,fill = ataq_def), stat = "identity",position=position_dodge()) + ggtitle("Media de ataque e defesa por Tipo de pokemon")
Figura 14. Gráfico 1 por média de ataque e defesa por tipo de Pokémon

Ao realizar análise do gráfico da Figura 14, é possível notar um pouco de dificuldade para se realizar uma comparação de média de ataque e defesa. Por exemplo, se desejarmos identificar quais tipos de Pokémon possuem a média de ataque e defesa semelhantes, esse gráfico traria dificuldade para a análise. Então, ao menos para realizar esse exemplo, o mais ideal é gerar o gráfico com barras uma ao lado da outra, conforme a Figura 15.

Figura 15. Gráfico 2 por média de ataque e defesa por tipo de Pokémon

<Resolução Desafio>

Agora será apresentada a resolução do desafio proposto. A lógica e a função para obter a média de defesa por tipo de Pokémon é a mesma que foi aplicada para gerar a média de ataque por tipo de Pokémon. No código a seguir, é demonstrado o uso da função necessária para gerar a média desejada e essa média será armazenada no objeto mediaDefesa.

## media de defesa por tipo de pokemon mediaDefesa <- ddply(pokemon, ~Type.1, summarise, mean = mean(Defense))

Se desejar gerar o gráfico para visualizar o resultado obtido ao executar esse código, o processo também é semelhante ao já aplicado para gerar o gráfico para média de ataque. Na Listagem 6 é demonstrado o código para gerar esse gráfico.

Listagem 6. Código para gerar gráfico de média de defesa por tipo de pokemon.

## grafico para média de defesa por tipo de pokemon ggplot(data = mediaDefesa) + geom_bar(aes(x = Type.1, y = mean), stat = "identity") + ggtitle("Media de defesa por Tipo de pokemon")

Análise de dados vem crescendo motivada pelo crescente número de dados gerados a todo momento. Neste artigo foi analisado um conjunto de dados pequeno, embora dificilmente fosse possível realizar a mesma análise manualmente. O propósito foi demonstrar, na prática, o que é e como é feito o processo de análise de dados para aplicar em grandes conjuntos de dados, com 500 mil ou até 8 milhões de registros.

Além disso, o artigo também teve o propósito de demonstrar as diferentes operações realizadas no conjunto de dados até chegar à parte de analisar. Existem várias outras opções de procedimentos a realizar, o que irá definir cada cálculo, cada slice, cada transformação no conjunto de dados, será o objetivo estabelecido, ou seja, não é um processo trivial.

Ainda é possível elaborar outros gráficos diferentes com R, gráficos mais dinâmicos e personalizados, mudando cores, formatos, tamanho de texto entre outras configurações. O R ainda possui pacotes que possibilitam desenvolver sistemas web com gráficos.

Links Úteis

  • Como criar o primeiro game com Unity 3D:
    Nesse curso, criaremos um game simples, mas completo, utilizando a plataforma de desenvolvimento de jogos Unity 3D. Para isso, faremos uso de diversos assets disponíveis tanto na Unity Asset Store como no próprio Unity 3D, os chamados "Standard Assets".
  • Curso de SQL:
    A linguagem SQL é amplamente utilizada em diversos tipos de aplicações que utilizem bancos de dados relacionais. Neste curso conheceremos os primeiros comandos da linguagem SQL (Structured Query Language).
  • Curso de Django:
    Neste curso conheceremos o Django, um poderoso framework web escrito em Python que tem chamado muita atenção da comunidade por sua facilidade de implementação, sua organização de código e suas funcionalidades.

Saiba mais sobre Big Data ;)

  • Modelagem de Dados:
    Essa guia terá como objetivo apresentar a modelagem de dados, desde seus primeiros passos com banco pequenos até a modelagem para bancos Big Data.
  • Big Data com Java:
    Neste Guia de Consulta você encontrará todo o conteúdo que precisa para entender a que se refere o termo Big Data, bem como sua importância, da perspectiva de um programador Java.

Artigos relacionados