beginning r - the statiscal programming language

42
Linguagem R Por: Fernando Gama Summary – Chapter 2

Upload: fernando-gama-da-mata

Post on 22-May-2015

153 views

Category:

Documents


0 download

DESCRIPTION

Resumo do capítulo 2 do livro Beginning R - The Statiscal Programming Language. Author : Mark Gardener.

TRANSCRIPT

Page 1: Beginning R - The Statiscal Programming Language

Linguagem R

Por: Fernando Gama

Summary – Chapter 2

Page 2: Beginning R - The Statiscal Programming Language

• Cálculos Matemáticos e estatísticos

É possível realizar cálculos dos mais simples aos mais complexos.

> 3 + 9 + 12 -7

[1] 17

> 12 + 17/2 -3/4 * 2.5

[1] 18.625

> (12 + 17/2 -3/4) * 2.5

[1] 49.375

R - Cálculos

Page 3: Beginning R - The Statiscal Programming Language

R - Cálculos

Page 4: Beginning R - The Statiscal Programming Language

R - Cálculos (Armazenando)

• Cálculos Matemáticos e estatísticos

Mais do que realizar cálculos é possível armazenar os resultados em objetos nomeados da seguinte forma:

object.name = mathematical.expression

Exemplo:

ans1 = 23 + 14/2 - 18 + (7 * pi/2)

Para visualizar o resultado, digite: ans1.

[1] 22.99557

Page 5: Beginning R - The Statiscal Programming Language

R - Cálculos (Armazenando)

É possível criar mais objetos (o que acarretará em maior custo de memória).

> ans2 = 13 + 11 + (17 - 4/7)

Temos 2 resultados: ans1 e ans2 é possível manipular esses objetos com novas operações:

ans1 + ans2 / 2 (Enter para visualizar o resultado)

Page 6: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

Mais frequentemente nos deparamos com amostras de dados. Como criamos e retornamos essas amostras?

• Comando combine:

- comando c(): Maneira mais simples e rápida de retornar uma série de valores armazenados em um objeto.

sample.name = c(item.1, item.2, item.3, item.n)

:: numéricos:

>data1 = c(3, 5, 7, 5, 3, 2, 6, 8, 5, 6, 9)

> data1

[1] 3 5 7 5 3 2 6 8 5 6 9

Page 7: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

É possível incorporar resultados existentes dentro de um determinado objeto em outros objetos.

> data1

[1] 3 5 7 5 3 2 6 8 5 6 9

> data2 = c(data1, 4, 5, 7, 3, 4)

> data2

[1] 3 5 7 5 3 2 6 8 5 6 9 4 5 7 3 4

:: textos:

our.text = c(“item1”, “item2”, ‘item3’)

Page 8: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

Caso ocorra a mesclagem entre números e letras na entrada de dados, os números serão convertidos em texto.

> mix = c(data1, day1)

> mix

[1] "3" "5" "7" "5" "3" "2" "6" "8" "5" "6" "9" "Mon"

[13] "Tue" "Wed" "Thu" "Fri"

Conclusão: c() é útil quando a amostra de

dados é pequena.

Page 9: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Comando scan:

Realiza operação similar ao comando c(). A diferença é que não há necessidade de entrar com os valores entre (), separados por vírgula.

our.data = scan()

:: Númérico:

> data3 = scan()

1: 6 7 8 7 6 3 8 9 10 7

11: 6 9

13:

Page 10: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

((Continuando...))

13:

Read 12 items

> data3

[1] 6 7 8 7 6 3 8 9 10 7 6 9

Funcionamento: primeira linha novo objeto é criado; em

seguida é realizada a entrada de dados e o enter é

pressionado. Veja que ele não retornou o resultado,

continuando a execução.

Por fim, só há a interrupção quando a próxima

linha(4) não receba nenhum dado e o enter for

pressionado.

Page 11: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

:: Texto: você precisa dizer ao R que deseja trabalhar com letras em vez de números.

scan(what = 'character')

Exemplo:

> day2 = scan(what = 'character')

1: Mon Tue Wed

4: Thu

5:

Read 4 items

Nota: Não há necessidade de inserar aspas

na entrada de dados.

Page 12: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• É possível utilizar da facilidade do comando scan() para abrir arquivos, para isso é necessário verificar de que maneira os dados estão separados.

• Por exemplo, se os dados estão separados por espaços, simplesmente copiamos e colamos, caso contrário é necessário informar ao R qual separador está sendo utilizado. Em um arquivo CSV, os dados são separados por vírgulas.

data4 = scan(sep = ',')

1: 3, 4, 5.2, 9

5: 11, 13.1

7:

Read 6 items

Page 13: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Exibindo os dados:

> data4

[1] 3 4 5.2 9 11 13.1

• Dados tabulados, especifique: scan(sep = '\t')

• Dados textuais, especifique: scan(sep = ',', what = 'char')

Aceitar abreviações

Page 14: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Lendo um arquivo de dados de um disco:

Considerando que o arquivo é separado por espaços.

> data6 = scan(file = 'test data.txt')

Read 9 items

data6

[1] 23.0 17.0 12.5 11.0 17.0 12.0 14.5 9.0 11.0

A busca é feita no diretório padrão, você pode

encontrar o seu diretório padrão por meio

do comando:

getwd()

Page 15: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Lendo um arquivo de dados de um disco:

Considerando que o arquivo é separado por espaços.

> data6 = scan(file = 'test data.txt')

Read 9 items

data6

[1] 23.0 17.0 12.5 11.0 17.0 12.0 14.5 9.0 11.0

A busca é feita no diretório padrão, você pode

encontrar o seu diretório padrão por meio

do comando:

getwd()

Page 16: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Verificar e listar os diretórios

dir() ou list.files()

• Você pode alterar o diretório de trabalho utilizando o comando setwd(), passando como parâmetro entre aspas o caminho desejado:

setwd('pathname')

• Você pode abrir uma janela para navegar nos diretórios e escolher o arquivo desejado por meio do comando:

scan(file.choose()) - arquivos separados por espaços.

scan(file.choose(), what = 'char', sep = ',')

Page 17: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Na maioria dos casos os datasets podem ser muito grandes. Neste caso, o ideal é utilizar o comando read.csv().

• Este comando pode receber vários parâmetros adicionais, como se pode ver abaixo:

read.csv(file, sep = ',', header = TRUE, row.names)

• A novidade fica por conta do parâmetro header – lê a primeira linha do arquivo CSV e insere o nome para cada coluna, por default é TRUE.

• Row.names permite que se especifique nomes

de linhas para os dados.

Page 18: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Outros comandos alternativos para leitura de dados:

read.table() - comando básico para leitura de dados; capaz de ler a maioria dos formatos de dados de texto simples.

• Assumindo que a separação é por espaços.my.ssv = read.table(file.choose(), header = TRUE)

• Assumindo que a separação é tabular por valoresmy.tsv = read.table(file.choose(), header = TRUE, sep = '\t')

read.delim(), read.csv(), read.table():

todos realizam a mesma função.

Page 19: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Para obtenção de dados é muito importante ter o cheklist(listado abaixo) em mente:

1. Verifique o formato dos dados assim como qual é o separador.

2. Procure ver se as colunas estão rotuladas.

3. Utilize o comando mais apropriado read.xxx() - read.csv é o mais utilizado.

4. Você pode utilzar a instrução file.choose() para salvar. (a menos que o S.O seja linux.

5. Certifique o nome escolhido para seus dados

seja curto e significativo.

6. Se os dados possuem nomes de linha,

utilizar row.names.

Page 20: Beginning R - The Statiscal Programming Language

R - Lendo e retornando dados

• Arquivos não preenchidos totalmente:

Na maioria dos casos, no mundo real recebemos amostras incompletas. Quando os dados são lidos dentro do R, ele insere nos itens não preenchidos a sigla NA(Not Available).

Exemplo:

> grass = read.csv(file.choose())

> grass

mow unmow

1 12 8

2 15 9

3 17 7

4 11 9

5 15 NA

Page 21: Beginning R - The Statiscal Programming Language

R - Visualizando objetos nomeados

• R é orientado a objetos, logo ele espera encontrar coisas nomeadas para manipular de alguma maneira.

• Visualizando e carregando objetos

ls() / objects(): lista todos objetos nomeados disponíveis.

A listagem dos objetos segue a ordem alfabética e maiúsculas acima das minúsculas.

Caso não se tenha objetos nomeados ao digitar ls(), o comando abaixo aparecerá:

character(0)

Page 22: Beginning R - The Statiscal Programming Language

R - Visualizando objetos nomeados

• Imagine que você tenha uma grande quantidade de objetos e você deseja filtrar pelo nome que se deseja. É possível limitar a visualização utilizando o comando abaixo:

> ls(pattern = 'b')

[1] "bare" "beetle.cca" "beta"

[4] bf.lm" "biol" "prob2odd" "tab.est"

• O pattern filtra todas as palavras que contenham a letra “b”.

> ls(pattern = 'be'): todas as palavras que

tenha “be”.

[1] "beetle.cca" "beta" "bf.beta"

Page 23: Beginning R - The Statiscal Programming Language

R - Visualizando objetos nomeados

• Caso você deseja encontrar nomes de objetos que começem com uma letra insira ^ no início.

> ls(pattern = '^b')

[1] "bare" "beetle.cca" "beta"

> ls(pattern = '^be')

[1] "beetle.cca" "beta"

• Caso queiramos isolar cada letra e fazer uma pesquisa, sabendo que o objeto as tenha fazemos assim:

> ls(pattern = '^[be]')

ou

> ls(pattern = '^b|^e')

Page 24: Beginning R - The Statiscal Programming Language

R - Visualizando objetos nomeados

• Agora, se desejamos encontrar objetos apenas tendo em mente o caracter final que ele contém podemos fazer:

> ls(pattern = 'm$')

[1] "bf.lm" "but.lm" "cbh.glm" "dep.pm"

• Removendo objetos do R

É possível remover permanentemente o objeto da memória utilizando os comandos rm() ou remove().

rm(nomeObjeto) ou remove(nomeObjeto)

• Podemos ser mais específicos:

> rm(list = ls(pattern= '^b'))

Page 25: Beginning R - The Statiscal Programming Language

R - Visualizando objetos nomeados

• Tipos de Itens da dados

:: Number data:

– a) números inteiros: integer.[1] 6 7 8 7 6 3 8 9 10 7 6 9

– b) números decimais: numeric.[1] 23.0 17.0 12.5 11.0 17.0 12.0 14.5 9.0 11.0

:: Text Items:

– a) textos simples: character[1] "Jan" "Feb" "Mar" "Apr" "May"

– b) não possui aspas: factor[1] mow mow mow unmow unmow

Levels: mow unmow

Page 26: Beginning R - The Statiscal Programming Language

R - Conversão entre números e textos

• Considerando dados como factor.

:: as.character(): comando é usado para converter textos simples.

:: as.factor(): converte novamente para factor.

> cut

[1] mow mow unmow unmow

Levels: mow unmow

> cut2 = as.character(cut)

[1] “mow” “mow” “unmow” “unmow”

> cut3 = as.factor(cut2)

[1] mow mow unmow unmow

Levels: mow unmow

Page 27: Beginning R - The Statiscal Programming Language

R - Conversão entre números e textos

• É possível fazer algo similar quando se trabalha com números.

:: as.integer(): converte para inteiro.

:: as.numeric(): converte para numero.

> data7

[1] 7.4 12.5 12.1 13.2

> data7i = as.integer(data7)

data7i

[1] 7 12 12 13

> data7n = as.numeric(data7i)

data7n

[1] 7 12 12 13

Page 28: Beginning R - The Statiscal Programming Language

R - Conversão entre números e textos

NOTA: Uma vez que as casas decimais foram perdidas você não poderá criá-las assim que a informação é perdida.

Page 29: Beginning R - The Statiscal Programming Language

R - Conversão entre números e textos

Outras conversões podem ser realizadas.

-> número para texto-> texto para número

Page 30: Beginning R - The Statiscal Programming Language

R - Estrutura dos dados

• Veremos pelo menos quatro estruturas diferentes para armazenar esses dados:

• Vetores

• Matrizes

• Data frames

• Lista

Page 31: Beginning R - The Statiscal Programming Language

R - Estrutura dos dados

• VetorÉ um objeto unidimensional.

Exemplo:

> vetor1

[1] “jan” “fev” “mar” “abr”

> vetor2

[1] 23.0 17.0 12.5 11.0

> fator

[1] mow mow mow unmow unmow

Levels: mow unmow

Page 32: Beginning R - The Statiscal Programming Language

R - Estrutura dos dados

• Data FramesÉ um objeto bidimensional, contendo linhas e colunas.

> grass mow unmow

1 12 8

2 15 9

3 17 7

4 11 9

5 15 NA

Page 33: Beginning R - The Statiscal Programming Language

R - Estrutura dos dados

• MatrizÉ um objeto de dados bidimensional.

> birdGarden Hedgerow Parkland

BlackBird 47 10 40

Robin 9 3 5

• Matriz só poderá conter o mesmo tipo de

dados. Consiste de uma única linha e

uma única coluna.

Page 34: Beginning R - The Statiscal Programming Language

R - Estrutura dos dados

• ListaÉ uma série de itens agrupados que formam um único objeto.

> grass.l

$mow

[1] 12 15 17 11 15

$unmow

[1] 8 9 7 9

• A lista é um objeto flexível porém,

mas difícil de lidar.

Page 35: Beginning R - The Statiscal Programming Language

R - Salvando seus dados

Muitas vezes é útil criar diferentes diretórios haja vista que, você tem uma mistura de resultados e itens de dados. Existem muitas maneiras de salvar seu trabalho.

• Salvando o workspace na saída.Ao finalizar sua tarefa no R, uma pergunta surge – se você

deseja salvar seu workspace. Um bom hábito, é dizer y (yes). Assim o R salvará, todos os objetos dentro do workspace padrão.

Page 36: Beginning R - The Statiscal Programming Language

R - Salvando seus dados

Porém, você pode salvar os arquivos em lugares diferentes. Isto é bastante útil quando você está trabalhando com outros projetos, ou mesmo quando você deseja organizar seus dados.

• R fornece uma solução para o caso::: comando save():

save(list, file='nomeArquivo').

• list :

nome dos objetos(separados por vírgula)

ou

linkar lista de nomes criadas.

Page 37: Beginning R - The Statiscal Programming Language

R - Salvando seus dados

> save(bf, bf.lm, bf.beta, file = 'Desktop/butterfly.RData')

> save(list = ls(pattern = '^bf'), file ='Desktop/butterfly.RData')

É possível especificar uma lista desta maneira:

> mylist = c('bf', 'bf.beta', 'bf.lm')

> save(list = mylist, file = 'Desktop/butterfly.RData')

Caso deseje salvar TODOS os objetos em vez de digitá-lo um a um, o R ti permite fazer isto de duas maneiras:

save(list = ls(all=TRUE), file = 'filename')

save.image(file = 'filename')

Page 38: Beginning R - The Statiscal Programming Language

R - Leitura dos dados

Um arquivo no disco é salvo no formato binário. Ou seja, um processador ou editor de texto não será capaz de lê-lo, porém dentro do R é possível ler este arquivo.

load(file='filename.RData')

load(file = file.choose())

Page 39: Beginning R - The Statiscal Programming Language

R - Salvando dados como arquivos de texto

Comandos para transferir dados para uma formato diferente do R:

write.table(), write.csv() e cat()

Qual utilizar?

- Vetor único: write() ou cat().

- Vetores com múltiplas colunas e dados: write.table() ou write.csv().

write(x, file = "data", ncolumns = if(is.character(x)) 1 else 5, sep = " ")

Tipo de dados: se for texto retorna uma única coluna;

Se os dados forem numéricos 5 colunas são criadas

(é possível customizar customizar).

data = c(1:5)

write(x, file=''Desktop/data.txt”, sep=',')

Page 40: Beginning R - The Statiscal Programming Language

R - Salvando dados como arquivos de texto

Comando write.table(): matriz de objetos ou um data frame

write.table(mydata, file='nomeArquivo', row.names =TRUE), sep = ' ', col.names = TRUE)

write.csv(mydata, file='nomeArquivo', row.names =TRUE), sep = ' ', col.names = TRUE)

Úteis para manipular dados complexos com múltiplas colunas presentes por exemplo, em uma planilha.

Obs: uma lista de objetos também poderia ser utilizada.

Page 41: Beginning R - The Statiscal Programming Language

Resumo- R pode funcionar como uma simples calculadora realizando operações matemáticas básicas.

- É possível armazenar esse resultado em uma variável.

- Pode-se criar um objeto de dados via teclado, área de transferência ou arquivos externos por meio dos comandos: c(), scan(), read.csv().

- Lista-se os objetos por meio do comando ls(), remove-se utilizando o comando rm().

- Existem diferentes tipos de dados(numéricos e caracter). Estes podem ser vetores(unidimensional) ou matrizes e dataframes(bidimensional) e objetos armazenados e listas.

- O R disponibiliza um comando para verificar o histórico,

assim como se pode salvar as listas dos comandos

em um arqvuivo.

- É possível salvar dados no R utilizando o comando

save() e outros comandos que o R disponibiliza.

Page 42: Beginning R - The Statiscal Programming Language

Referências

Capítulo 2 do livro “Beginning R – The Statistical Programming Langage”. Author: Dr. Marker Gardener.