Beginning R - The Statiscal Programming Language

484 visualizações

Publicada em

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

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
484
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
19
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Beginning R - The Statiscal Programming Language

  1. 1. Linguagem R Summary – Chapter 2 Por: Fernando Gama
  2. 2. R - Cálculos • 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
  3. 3. R - Cálculos
  4. 4. 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
  5. 5. 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)
  6. 6. 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
  7. 7. 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’)
  8. 8. 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.
  9. 9. 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:
  10. 10. 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
  11. 11. 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.
  12. 12. 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
  13. 13. 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
  14. 14. 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()
  15. 15. 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()
  16. 16. 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 = ',')
  17. 17. 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.
  18. 18. 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 valores my.tsv = read.table(file.choose(), header = TRUE, sep = 't') read.delim(), read.csv(), read.table(): todos realizam a mesma função.
  19. 19. 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.
  20. 20. 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
  21. 21. 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)
  22. 22. 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"
  23. 23. 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')
  24. 24. 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'))
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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.
  29. 29. R - Conversão entre números e textos Outras conversões podem ser realizadas. -> número para texto -> texto para número
  30. 30. R - Estrutura dos dados • Veremos pelo menos quatro estruturas diferentes para armazenar esses dados: • Vetores • Matrizes • Data frames • Lista
  31. 31. 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
  32. 32. 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
  33. 33. R - Estrutura dos dados • Matriz É um objeto de dados bidimensional. > bird Garden Hedgerow Parkland BlackBird Robin 47 9 10 3 40 5 • Matriz só poderá conter o mesmo tipo de dados. Consiste de uma única linha e uma única coluna.
  34. 34. 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.
  35. 35. 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.
  36. 36. 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.
  37. 37. 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')
  38. 38. 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())
  39. 39. 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=',')
  40. 40. 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.
  41. 41. 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.
  42. 42. Referências Capítulo 2 do livro “Beginning R – The Statistical Programming Langage ”. Author: Dr. Marker Gardener.

×