Análise e Exploração de Dados com R

Page 1

Análise e Exploração de Dados com R.pdf

C

M

Y

CM

MY

CY

CMY

K

1

17/02/17

14:22


Edição FCA – Editora de Informática, Lda.

EDIÇÃOAv. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351de 213Informática, 511 448 FCA – Editora Lda. fca@fca.pt Av. Praia da Vitória, 14 A – 1000-247 Lisboa www.fca.pt Tel: +351 213 511 448 fca@fca.pt www.fca.pt Distribuição Lidel – Edições Técnicas, Lda. DISTRIBUIÇÃO D. Estefânia, 183, R/C Dto. – 1049-057 Lisboa Lidel – Rua Edições Técnicas, Lda. Tel: +351 213 511 448 Rua D. Estefânia, 183, R/C Dto. – 1049-057 LISBOA lidel@lidel.pt Tel: +351 213 511 448 www.lidel.pt lidel@lidel.pt www.lidel.pt

Livraria LIVRARIA Av. Praia da Vitória, 14 A – 1000-247 Lisboa Av. Praia da Vitória, 14 – 1000-247 LISBOA Tel: +351 213 511 448 * Fax: +351 213 522 684 Tel: +351 213 511 448 * Fax: +351 213 173 259 livraria@lidel.pt livraria@lidel.pt Copyright © abril 2016, FCA – Editora de Informática, Lda. Copyright © 2017, FCA – Editora de Informática, Lda. ISBN: 978-972-722-830-0 ISBN edição impressa: 978-972-722-863-8 1.ª edição impressa: abrilmarço 20162017 1.ª edição impressa: Paginação: Alice Simões Impressão e acabamento: A definir Paginação: Carlos Mendes Depósito Legal N.º Aguardar Impressão e acabamento: Tipografia Lousanense, Lda. – Lousã Capa: José Manuel Reis Depósito Legal n.º 422203/17 Ilustração daJosé capa: Capa: M.Miguel Ferrão –Montenegro Look-Ahead Marcas Registadas de FCA – Editora de Informática,

Marcas registadas de FCA – Editora de Informática, Lda. –

FCA®

Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto, aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções.

Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções.

Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de da mesma.por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de Nãopublicação nos responsabilizamos publicação da mesma.

Os nomes comerciais referenciados neste livro têm patente registada. Os nomes comerciais referenciados neste livro têm patente registada. Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico, gravação, sistema de armazenamento e disponibilização de Reservados todos osmecânico, direitos. Estafotocópia, publicaçãodigitalização, não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico,sítio mecânico, gravação, sistema de armazenamento e disponibilização de informação, Web, blogue informação, Web, fotocópia, blogue oudigitalização, outros, sem prévia autorização escrita da Editora, exceto o permitido pelo sítio CDADC, em ou outros, semprivada prévia autorização escrita da Editora, para exceto o permitido pelo CDADC, termosdo depagamento cópia privada AGECOP – termos de cópia pela AGECOP – Associação a Gestão da Cópia Privada,em através daspela respetivas – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas. taxas.


ÍNDICE Os Autores

XI

Prólogo XIII

PARTE I – O Sistema R

1

1. Introdução ao Sistema R

3

1.1. 1.2. 1.3. 1.4. 1.5. 1.6.

O que é o R?

4

Instalar o R

4

Edição de Comandos e Ambientes de Desenvolvimento

4

Objetos, Funções e Packages 6 Ajuda e Documentação

7

Gravar e Recuperar uma Sessão

8

2. Vetores e Tipos Primitivos 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 2.9.

Atribuição de Valores a um Objeto

10

Valores Numéricos e Operadores Aritméticos

10

Vetores Numéricos

11

Acesso aos Elementos de Vetores

15

Funções sobre Vetores Numéricos

16

Vetores Lógicos

20

Strings e Vetores de Strings 22 Fatores 24 Valores Omissos

Exercícios Resolvidos © FCA

9

25 26


VI

Análise e Exploração de Dados com R

3. Estruturas de Dados e Funções 3.1. 3.2. 3.3. 3.4. 3.5. 3.6.

31

Matrizes 32 Arrays 36 Lists 37 Data Frames 39 Datas e Horas

44

Conversões entre Estruturas de Dados

45

Exercícios Resolvidos

4. Leitura e Escrita de Dados

46 51

4.1. Definição da Diretoria de Trabalho 4.2. Leitura de Dados 4.3. Escrita de Dados no Ecrã e em Ficheiro

52

Exercícios Resolvidos

57

5. Programação em R

53 55

59

5.1. Definição de Novas Funções 5.2. Instruções Condicionais 5.3. Instruções Cíclicas

60

Exercícios Resolvidos

65

6. R Markdown

61 62

71

6.1. Introdução ao R Markdown 72 6.2. Linguagem R Markdown 72 6.3. Exemplo 74 Exercícios Resolvidos

77

PARTE II – Análise de Dados com o Sistema R

81

7. Representação, Sumariação e Pré-Processamento dos Dados

83

7.1. 7.2. 7.3. 7.4. 7.5. 7.6.

Estrutura e Representação dos Dados

84

Verificação da Estrutura dos Dados

86

Estatística Descritiva para Sumariação dos Dados

88

Tratamento de Valores Omissos

90

Discretização de Variáveis Numéricas

93

Estandardização dos Dados

94

Exercícios Resolvidos

95


Índice

8. Visualização Gráfica de Dados 8.1. 8.2. 8.3. 8.4. 8.5. 8.6. 8.7.

Gráficos de Dispersão

102

Boxplots 107 Histogramas 111 Gráficos de Barras e Pie Charts 113 Sobreposição de Objetos Gráficos

115

Formatação e Exportação de Gráficos

118

Package ggplot2 120

Exercícios Resolvidos

9. Inferência e Modelação Estatística 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 9.7.

101

126 131

Distribuições de Probabilidade em R

132

Verificar a Normalidade dos Dados

142

Amostragens 144 Intervalos de Confiança

145

Testes Estatísticos

146

Análise de Variância

155

Análise de Regressão

158

Exercícios Resolvidos

166

10. Redução de Dimensionalidade

173

10.1. Análise de Componentes Principais 10.2. Decomposição em Valores Singulares 10.3. Análise Multidimensional

174

Exercícios Resolvidos

181

11. Clustering

176 179

187

11.1. Clustering Hierárquico 188 11.2. Clustering K-Means 192 Exercícios Resolvidos

© FCA

12. Análise Preditiva e Aprendizagem Máquina: Conceitos Básicos

194 197

12.1. Introdução 198 12.2. Métricas de Erro 200 12.3. Método dos K-Vizinhos Mais Próximos 203 12.4. Árvores 205 12.5. Modelos de Regressão para Análise Preditiva 208

VII


VIII

Análise e Exploração de Dados com R

12.6. Máquinas de Vetor de Suporte 12.7. Redes Neuronais Artificiais 12.8. Métodos Probabilísticos: Naive Bayes

210

Exercícios Resolvidos

214

13. Aprendizagem Máquina: Tópicos Complementares

212 213

221

13.1. Estimação do Erro com Validação Cruzada 222 13.2. Comparação de Modelos e Algoritmos 224 13.3. Otimização de Modelos 225 13.4. Sobreajustamento e Subajustamento: Complexidade dos Modelos 226 13.5. Seleção de Atributos 227 13.6. Conjuntos de Modelos 228 13.7. Package caret 230 Exercícios Resolvidos

236

PARTE III – Casos de Aplicação

239

14. Reconhecimento de Atividades Humanas Usando Telemóveis

241

14.1. Descrição dos Dados 14.2. Pré-Processamento dos Dados 14.3. Análise Exploratória dos Dados 14.4. Análise Estatística Univariada 14.5. Análise de Regressão 14.6. Análise Estatística Multivariada 14.7. Análise Preditiva

15. Análise da Qualidade de Vinhos 15.1. Descrição dos Dados 15.2. Pré-Processamento e Análise Exploratória dos Dados 15.3. Análise de Regressão 15.3.1. Modelo de Regressão 15.3.2. Avaliação do Modelo 15.3.3. Importância de Cada Variável 15.3.4. Potenciais Problemas 15.4. Comparação de Modelos de Aprendizagem Máquina

242 243 247 252 254 257 263 269 270 271 274 274 277 278 282 284


Índice

16. Análise de Dados de Crédito Bancário 16.1. Descrição e Carregamento dos Dados 16.2. Análise Exploratória dos Dados 16.3. Análise Estatística dos Dados 16.4. Análise Agregada dos Dados 16.5. Aprendizagem Máquina

297 298 300 309 311 318

17. Análise de Dados de Expressão Genética em Pacientes com Cancro 325 17.1. Descrição dos Dados 326 17.2. Representação e Acesso aos Dados: O Projeto Bioconductor 327 17.3. Filtragem por Variabilidade 332 17.4. Identificação de Genes Diferencialmente Expressos 334 17.5. Clustering 338 17.6. Classificação de Amostras 340 Recursos e Conjuntos de Dados Adicionais 343 Livros 343 Repositórios de Dados e Coleções de Dados

345

Propostas Complementares de Análise de Dados

347

Ferramentas 348 Bibliografia 351

© FCA

Índice Remissivo

353

IX



OS AUTORES Miguel Rocha

© FCA

Pedro G. Ferreira

É, atualmente, Professor Associado no Departamento de Informática da Universidade do Minho, onde é também investigador do Centro de Engenharia Biológica e Diretor do Mestrado em Bioinformática. É autor de mais de 150 artigos em revistas e conferências internacionais e investigador responsável em vários projetos financiados, em áreas relacionadas com a mineração de dados, a aprendizagem máquina e a computação evolucionária, com aplicações nos campos da bioinformática, da biologia de sistemas e da otimização de redes de computadores. Coautor do livro Análise Inteligente de Dados – Algoritmos e Implementação em JAVA, publicado pela FCA. Leciona, ainda, várias unidades curriculares relacionadas com a bioinformática e com a análise e exploração de dados biológicos. Licenciado em Engenharia de Sistemas e Informática e doutorado em Inteligência Artificial pela Universidade do Minho. Atualmente, é investigador FCT no Instituto de Patologia e Imunologia Molecular da Universidade do Porto (Ipatimup) e Instituto de Investigação e Inovação em Saúde da Universidade do Porto (i3s). Os seus interesses de investigação incluem as áreas da genómica das populações humanas e da genómica de cancro bem como a aprendizagem automática e análise de dados de grande escala e dimensão.



PRÓLOGO Esta obra foi planeada e escrita com o intuito de tornar mais fácil a abordagem aos conceitos de análise de dados utilizando o sistema R. O livro foi desenhado num contexto universitário e pensado para alunos universitários com diversos tipos de formação e com a necessidade de adquirir competências na análise de dados, podendo ser também útil para qualquer profissional que necessite deste tipo de formação. Assume-se, neste livro, que os leitores não têm experiência prévia em programação, nem na utilização de sistemas de computação científica e/ou estatística. No entanto, este livro não pretende explicar em detalhe os métodos de análise de dados, nem os seus fundamentos teóricos, que devem ser estudados através da consulta de outros textos especializados. O livro tem uma vertente marcadamente prática, sendo oferecidos inúmeros exemplos, bem como exercícios resolvidos e propostos. São fornecidas algumas referências para que o leitor possa complementar o seu conhecimento. Sugere-se ao leitor que faça a leitura deste livro em paralelo com a utilização do sistema R e que experimente todos os exemplos propostos bem como todas as variantes que lhe sejam sugeridas pela sua imaginação. Só assim poderá tirar verdadeiro partido deste livro.

© FCA

Divirta-se com a análise de dados e com o R.



O SISTEMA R

PARTE I



1 INTRODUÇÃO

INTRODUÇÃO AO SISTEMA R

Neste capítulo, é realizada uma breve introdução ao sistema R, aos seus principais objetivos, forma de instalação e utilização e a conceitos importantes, tais como objetos e funções.


4

Análise e Exploração de Dados com R

1.1. O QUE É O R? O R é um sistema de computação científica e estatística, programável e que permite o tratamento de vários tipos de dados. Na sua versão base, contém um conjunto de ferramentas que permitem o armazenamento, processamento, cálculo, análise e visualização de dados. Possui ainda uma poderosa linguagem de programação, que permite a implementação de novas funções com o comportamento definido pelo utilizador. Para além disso, é de acesso livre, existindo uma comunidade bastante ativa de investigadores (designada por The Comprehensive R Archive Network – CRAN) que desenvolvem funcionalidades que podem ser instaladas para expandir as funcionalidades do sistema. O R começou por ser essencialmente desenvolvido como um sistema de tratamento estatístico de dados, mas tem evoluído no sentido de se tornar num ambiente de desenvolvimento coerente, mais genérico e multifacetado. Ainda assim, existem disponíveis na versão base do R muitas ferramentas de tratamento estatístico de dados, estando muitas outras disponíveis para instalação adicional e opcional.

1.2. INSTALAR O R No sítio do projeto R, em https://www.r-project.org, poderá encontrar a última versão disponível do software. Existem versões para Microsoft Windows, Linux e MAC OS X que podem ser instaladas livremente. Neste sítio estão também disponíveis vários servidores alternativos (mirrors) onde se podem encontrar os ficheiros de instalação, podendo ser escolhido um próximo da sua localização geográfica. A versão mais atual do R, à data de escrita deste livro, é a 3.3.1, lançada em julho de 2016, e foi a usada para correr todos os exemplos disponibilizados ao longo da obra. Para a instalação do R, deverá escolher o mirror mais adequado, fazendo, em seguida, o download do ficheiro de instalação adequado para o seu computador e sistema operativo, escolhendo a opção base. O processo de instalação é trivial, devendo apenas correr este ficheiro e escolher opções por omissão, para uma instalação standard.

1.3. EDIÇÃO DE COMANDOS E AMBIENTES DE DESENVOLVIMENTO O R é um ambiente orientado para o uso de uma linha de comandos, apesar de ter um conjunto de menus disponíveis que permitem realizar algumas operações. Existem ainda programas, denominados ambientes integrados de desenvolvimento (IDE), que criam um ambiente integrado que inclui a linha de comandos R e um conjunto de


Introdução ao Sistema R

ferramentas complementares. Neste âmbito, os autores recomendam a instalação do programa RStudio (https://www.rstudio.com), que, não sendo essencial para correr os exemplos fornecidos, permite criar um ambiente de trabalho mais produtivo dadas as inúmeras funcionalidades disponibilizadas. Para discutir as potencialidades do RStudio, apresenta-se na Figura 1.1 uma ilustração do ambiente de trabalho proporcionado.

Figura 1.1 Ilustração do ambiente de trabalho proporcionado pelo RStudio

© FCA

O canto superior esquerdo consiste numa zona onde se podem editar ficheiros com comandos ou funções R; o canto inferior esquerdo apresenta a linha de comandos onde poderá escrever comandos R e verificar os seus resultados; o canto superior direito possui várias ferramentas de análise (por exemplo, histórico de comandos realizados, listagem de objetos R criados na sessão); e, finalmente, o canto inferior direito contém várias opções, como navegar nos ficheiros do sistema, visualizar gráficos gerados, instalar e visualizar packages ou consultar a ajuda do sistema. A linha de comandos, seja no RStudio ou diretamente no R, permite escrever comandos a seguir ao prompt (>) do interpretador, executando-os de seguida. Em muitos casos, o R não imprime no ecrã nenhum resultado da computação efetuada (por exemplo, por ser guardado em algum objeto) e apenas altera o estado das suas variáveis internas (ou objetos). Quando o resultado não é guardado num objeto, o mesmo é apenas mostrado

5


6

Análise e Exploração de Dados com R

no ecrã, não podendo ser reutilizado. Para este efeito, o resultado deve ser armazenado em variáveis ou objetos do R. Para tornar o seu trabalho mais eficiente, pode sempre recuperar os comandos anteriores utilizando as setas do cursor, bem como editar os comandos com as teclas Delete ou Backspace, Home e End, que tomam os seus comportamentos habituais. As ferramentas do RStudio permitem ainda a consulta do histórico de comandos e a sua reutilização simples com opções na interface fornecida. Há que tomar em atenção que o R é sensível à diferença entre maiúsculas e minúsculas. Assim, quer o nome dos objetos quer o dos comandos deverão ser escritos na forma correta (por exemplo, a e A são caracteres diferentes). Quando um comando não é terminado numa linha, o símbolo + aparece no início da linha seguinte indicando que o interpretador do R espera que o comando seja terminado. Quando se pretende criar um conjunto composto de comandos, estes deverão ser iniciados com o símbolo { e terminados com o símbolo }. Os comandos individuais podem ser separados por ; ou simplesmente mudando de linha. A função q( ) é usada para terminar a sua sessão no R.

1.4. OBJETOS, FUNÇÕES E PACKAGES Existem dois conceitos fundamentais no R: objetos e funções. Os objetos (ou variáveis) são os “contentores” da informação, ou seja, permitem guardar dados de diversos tipos. Nos capítulos seguintes analisar-se-ão em detalhe diversos tipos de objetos existentes no R. A lista de objetos disponíveis numa sessão de trabalho de R pode ser consultada através da função ls(). A função rm(objeto) poderá ser usada para remover um objeto da sessão de trabalho. Por outro lado, a função typeof(objeto) permite determinar o tipo de dados associado ao objeto. A função str aplicada sobre qualquer objeto R permite conhecer informações sobre a sua estrutura interna, sendo, em particular, bastante útil para objetos com estruturas mais complexas. Em R os objetos são caracterizados por um conjunto de atributos que podem ser consultados usando a função attributes. As funções, por outro lado, constituem os mecanismos de processamento e manipulação dos dados. Tipicamente, uma função consta de uma operação de manipulação de dados que pode receber zero ou mais argumentos de entradas (objetos ou variáveis) e que retorna como resultado um novo objeto ou variável (podendo não retornar resultado


Introdução ao Sistema R

algum). As funções em R constituem, assim, uma implementação (ainda que mais flexível) do conceito matemático de função. As funções podem ser chamadas em R através da sintaxe nome_função(argumentos). Note que, quando não existem argumentos, deverá manter os parênteses e não colocar nada no seu interior (poderá colocar espaços sem alterar a sintaxe). Quando o R arranca, são carregados alguns packages nucleares que possuem um conjunto de funções já disponíveis. É possível carregar novos packages instalados na sua distribuição com a função library(package), tornando as funções desse package disponíveis. A função library, chamada sem argumentos, permite saber quais os packages instalados. É ainda possível instalar novos packages, alargando, assim, o leque de funções disponíveis, através da função install.package(packages). Note que, ao instalar um novo package, terá de o carregar em seguida para o poder utilizar. No ambiente visual do R, existe o menu Packages onde poderá encontrar opções que lhe permitem instalar novos packages e atualizar os existentes. O RStudio disponibiliza também um ambiente que permite verificar os packages instalados e instalar novos packages, através da opção Packages existente no canto inferior direito do ambiente de trabalho. Por outro lado, o R disponibiliza uma linguagem de programação que permite ao utilizador desenvolver novas funções, que passam a estar disponíveis para serem utilizadas exatamente da mesma forma que as predefinidas (consultar o Capítulo 5).

1.5. AJUDA E DOCUMENTAÇÃO O R possui um sistema de ajuda bastante completo, a que se pode aceder de várias formas: •  Consultando uma ajuda genérica sobre o R. A função help.start() irá abrir uma janela de um browser (por exemplo, Internet Explorer ou Firefox) e mostrar uma página útil para uma introdução ao R; •  Usando a função help, pode descobrir ajuda sobre uma função do sistema, por exemplo, help(matrix); •  Procurando com a função help.search todas as páginas de ajuda onde esteja uma dada palavra-chave, por exemplo, help.search(“matrix”).

© FCA

No menu Help, poderá ainda encontrar outras alternativas ao nível da ajuda ao utilizador. Neste menu, tem ainda a opção de consultar alguns manuais disponíveis em PDF que acompanham a instalação do R.

7


8

Análise e Exploração de Dados com R

No RStudio, a ajuda sobre diversos tópicos pode ser consultada usando o tab Help no canto inferior direito. As funções help e help.start lançam os seus resultados neste tab, se chamadas no contexto do RStudio. Uma função bastante útil é a função example(função) que permite consultar exemplos ilustrativos do uso de cada função, passando o nome da função como parâmetro. Utilizando o símbolo ? seguido do nome da função, por exemplo, ?ls, acede a toda a documentação da função, incluindo uma descrição da mesma, uma explicação dos parâmetros e alguns exemplos de utilização.

1.6. GRAVAR E RECUPERAR UMA SESSÃO As seguintes funções poderão ser usadas para guardar o seu trabalho no final de uma sessão e recuperá-lo na sessão seguinte: •  savehistory(nome_ficheiro) – guarda os comandos efetuados durante uma sessão, podendo especificar-se o nome do ficheiro; •  loadhistory(nome_ficheiro) – carrega os comandos efetuados numa sessão a partir de um ficheiro. Este é um ficheiro de texto que poderá ser aberto por qualquer editor de texto. Estas opções estão também disponíveis no menu File; •  save.image(nome_ficheiro) – guarda os dados criados durante uma sessão, podendo especificar-se o nome do ficheiro; •  load(nome_ficheiro) – realiza a operação inversa. Este é um ficheiro binário que só pode ser aberto com o R. Ao terminar uma sessão, tem a opção de guardar os dados e os comandos efetuados. Se responder afirmativamente, os dados serão guardados por omissão num ficheiro chamado “.RData” e os comandos no ficheiro “.Rhistory”, na sua pasta corrente de trabalho. Se o R for recomeçado a partir da mesma diretoria, estes ficheiros são automaticamente carregados no início da sessão seguinte. Na Secção 4.1 poderá conhecer mais detalhes sobre como verificar e alterar a sua diretoria de trabalho. No seu canto superior direito, o RStudio permite verificar todos os comandos corridos na sessão (opção History) ou consultar a lista de objetos na sua sessão (opção Environment). O menu Session, bem como os ícones desse quadrante, permite correr as funções anteriormente mencionadas para gestão do ambiente de trabalho (workspace) e do histórico.


2 INTRODUÇÃO

VETORES E TIPOS PRIMITIVOS

Neste capítulo, são apresentados os tipos primitivos de dados do R para representar variáveis, incluindo valores numéricos, lógicos e textuais (strings), bem como os vetores como coleções de dados de tipos primitivos. É ainda abordada a forma mais simples para se pode mudar o conteúdo de um objeto em R, a atribuição.


10

Análise e Exploração de Dados com R

2.1. ATRIBUIÇÃO DE VALORES A UM OBJETO Como foi já referido no Capítulo 1, o R permite definir objetos, que não são mais do que a forma de guardar informação de modo a poder ser reutilizada. A cada objeto no R é atribuído um nome, que o identifica, e um determinado tipo, que indica qual a estrutura dos dados que pode guardar. A operação mais básica que se pode realizar sobre um objeto é a atribuição, ou seja, associar um valor ou conteúdo a um nome. Para o efeito, usam-se os operadores <- ou =. Assim, ambos os comandos seguintes atribuem o valor 2 ao objeto x: > x = 2 > x <- 2

Note que, quando efetua uma atribuição, não é apresentado nenhum resultado na linha de comando. Para verificar o conteúdo de um objeto, terá de escrever o seu nome na linha de comando do R, sendo que, nesse caso, este é impresso no ecrã: > x [1] 2

2.2. VALORES NUMÉRICOS E OPERADORES ARITMÉTICOS Pelas suas características, o tipo de dados mais usual no R é o tipo numérico. Sobre valores numéricos é possível realizar diversos tipos de cálculos através de operadores aritméticos comuns (+, -, *, /) ou funções predefinidas (que serão abordadas mais tarde). Os operadores aritméticos +, - e / têm o significado habitual, enquanto * significa multiplicação. Para ilustrar algumas destas funcionalidades, vejamos exemplos em que a linha de comandos do R é usada ao estilo de uma calculadora: > 2+3 [1] 5 > 3 * 1/2 [1] 1.5 > 5.3 - 4.2 / 2.3 [1] 3.473913


Vetores e Tipos Primitivos

Note nos exemplos anteriores que, quando escreve uma expressão na linha de comandos do R, o seu valor é calculado e escrito no ecrã. O valor 1 entre parênteses retos indica apenas que se trata do primeiro elemento do resultado e, neste caso, o único. Realça-se ainda que as regras de prioridade dos operadores aritméticos seguem as regras matemáticas habituais. Vimos já como criar um objeto numérico e atribuir-lhe um valor. Vejamos, em seguida, mais alguns exemplos ilustrativos: > y = 3.1 > z = 6.2 > y / z [1] 0.5 > w = y * z + 2

Podem ainda usar-se a exponenciação (símbolo ^), a divisão inteira (símbolos %/%) e o resto da divisão inteira (símbolos %%), como se pode observar pelos exemplos seguintes: > y=5 > y^2 [1] 25 > y%%2 [1] 1 > y%/%2 [1] 2

2.3. VETORES NUMÉRICOS Vimos anteriormente exemplos de variáveis escalares. No entanto, o R é orientado aos vetores que constituem objetos que permitem guardar uma sequência de valores. Assim, não existem em R variáveis escalares com um único valor, sendo estes casos particulares de vetores com apenas um elemento. A função c permite juntar (concatenar) um vetor com novos elementos (ou com outros vetores), sendo a forma mais direta de formar um novo vetor a seguinte: > v1 = c(1,5,8,10) © FCA

> v1 [1]

1

5

8 10

11


12

Análise e Exploração de Dados com R

> v2 = c(3,v1) > v2 [1]

3

1

5

8 10

Outra forma de criar vetores numéricos com utilidade prática é a geração de sequências de números. Um dos casos mais simples consiste em gerar, por exemplo, um vetor com todos os números inteiros entre 1 e 10. Podemos fazer isso com o operador :, como se ilustra de seguida: > 1:10 [1]

1

2

3

4

5

6

7

8

9 10

> 10:2 [1] 10

9

8

7

6

5

4

3

2

É ainda possível gerar sequências de uma forma mais genérica utilizando a função seq. Esta tem como argumentos: o valor inicial da sequência (from), o valor final (to) e o intervalo entre os elementos (by). Vejamos um exemplo simples de uma sequência entre 1.0 e 2.0, com passo de 0.1: > seq(1, 2, 0.1) [1]

1.0

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

2.0

Podemos escrever os argumentos das funções pela sua ordem ou nome, podendo, assim, defini-los por uma outra ordem. Assim, este comando obtém exatamente o mesmo resultado que o anterior: > seq(by = 0.1, to = 2, from = 1)

Por outro lado, podemos omitir alguns argumentos, desde que estes tenham um valor por omissão. No exemplo seguinte, o parâmetro by foi omitido tendo o valor 1 por omissão: > seq(1, 10) [1]

1

2

3

4

5

6

7

8

9 10

Uma função relacionada é a função rep, que permite criar vetores com repetição de elementos. Os principais argumentos desta função definem os elementos a repetir, o número de vezes que determinado elemento é repetido (each) e o número total de repetições a efetuar (times). Os exemplos seguintes ilustram o comportamento da função:


A nova coleção sobre os grandes temas da Ciência dos Dados: Data Science, Big Data, Analytics e Internet das Coisas. Com uma abordagem muito prática e demonstração de exemplos e projetos, estes são os livros essenciais aos profissionais do futuro!


Análise e Exploração de Dados com R.pdf

C

M

Y

CM

MY

CY

CMY

K

1

17/02/17

14:22


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.