• Nenhum resultado encontrado

Introdução ao R Aula #2

N/A
N/A
Protected

Academic year: 2021

Share "Introdução ao R Aula #2"

Copied!
52
0
0

Texto

(1)PPG-BOT. Disciplina BOT-89 PPG-BOT-INPA 2014. Introdução ao R Aula #2 Alberto Vicentini Programa de Pós-Graduação em Botânica do INPA. Baseado na Aula 01 da disciplina BIE5782-2013 (Ecologia - USP) Alexandre Adalardo de Oliveira (IB-USP) João Batista Ferreira ( ESALQ-USP) Rodrigo Santinello Pereira (FFCLRP-USP) Paulo Inácio Prado (IB-USP) http://ecologia.ib.usp.br/bie5782/. Sunday, May 18, 14.

(2) Um ambiente pouco amigável .... Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado!. Sunday, May 18, 14.

(3) .. ou apenas pouco familiar ?. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof! Sunday, May 18, 14.

(4) A Camisa de Força das Interfaces. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof! Sunday, May 18, 14.

(5) Martelinho de ouro! (Lei do instrumento) "É tentador tratar todas as coisas como se fossem pregos, se a única ferramenta que você tem é um martelo!" 1966 Abraham Maslow http://en.wikipedia.org/wiki/Law_of_the_instrument. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado!. Sunday, May 18, 14.

(6) Futuro? ou presente?. Sunday, May 18, 14.

(7) “... aprender a programar é importante porque desenvolve habilidades analíticas e de resolução de problemas. É uma atividade criativa, um meio de expressar idéias abstratas. Assim, a programação é divertido e é muito mais do que uma habilidade profissional. Ao projetar programas, aprendemos muitas habilidades que são importantes para todas as profissões. Essas habilidades podem ser resumidas como:. • • •. Leitura crítica Pensamento analítico Síntese criativa”. http://programmingstage.blogspot.com.br/2012/05/why-programming-is-important.html. Sunday, May 18, 14.

(8) Na ciência... “para transformar dados brutos (raw data) em artigos científicos geralmente requer um pouco de programação, o que significa que a maioria dos cientístas escreve software” Nick Barnes, Nature News 2010. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(9) Flexibilidade A pergunta certa sobre uma análise em R não é se é possível fazê-la, e sim como fazê-la. Paulo Justiniano Ribeiro. Existem várias maneiras de fazer a mesma coisa no R. É fundamental aprender a falar R, sabendo falar, você pode dizer do seu jeito.. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(10) Filosofia do R: Programar com dados “para permitir a melhor a mais ampla exploração de dados possível, [...] mas sempre explicando a natureza dos métodos utilizados, num formato aberto (livre) e compreensível”. John M. Chambers, Programming with R, 2008. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(11) Controle “Um dos objectivos da análise estatística é o de destilar um conjunto longo e complicado de dados em um número pequeno de estatísticas descritivas que façam sentido” Muitos dos pacotes estatísticos de computadores modernos, no entanto, fazem exatamente o oposto disso. Eles produzem automáticamente um número excessivo de resultados que termina sendo aceito sem crítica; pode levar a super (over) interpretação dos dados; e incentiva o mal hábito de “jogar dados e cuspir resultados” (data trawling).. Mick Crawley. O R, por outro lado, não te diz nada a não ser aquilo que você peça explicitamente! Crawley, Michael J. 2007. The R Book. John Wiley & Sons Ltd. 950 p. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(12) "Uma das coisas mais importantes que você (como cientista) pode fazer é dedicar um tempo para aprender uma linguagem de programação de verdade. Aprender a programar é como aprender outro idioma: exige tempo e treinamento, e não há resultados práticos imediatos. Mas se você supera essa primeira subida íngreme da curva de aprendizado, os ganhos como cientista são enormes. Programar não vai apenas livrar você da camisa de força dos pacotes estatísticos, mas também irá aguçar suas habilidades analíticas e ampliar os horizontes de modelagem (..) e estatística." Gotelli, N.J.; Ellison, A.M. 2011. Principios de Estaística em Ecologia. ARTMED EDITORA, 528 pg.. (Tradução Gotelli & Ellison, 2004. alterado de USP-BIE-5782) Sunday, May 18, 14.

(13) Sunday, May 18, 14.

(14) A cara do R. Editor de scripts (onde você escreve para armazenar o que falou ao R e poder repetir quantas vezes quiser sem digitar novamente). Console (onde os scripts são executados, você fala com o R). Sunday, May 18, 14.

(15) Editor de scripts. Console Sunday, May 18, 14. Plots. Ajuda.

(16) "A chave para entender o R é que trata-se de uma linguagem. Uma linguagem para manipular objetos." http://www.cmis.csiro.au/bill.venables/. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(17) Operadores <-, = , -> Objetos e Atribuição. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(18) Operadores <-, = , -> Objetos e Atribuição objeto <- expressão > area <- c(303, 379, 961, 295, 332, 47,. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14. 122, 11, 53, 2749).

(19) Operadores <-, = , -> Objetos e Atribuição objeto <- expressão > area <- c(303, 379, 961, 295, 332, 47,. 122, 11, 53, 2749). objeto = expressão > area = c(303, 379, 961, 295, 332, 47,. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14. 122, 11, 53, 2749).

(20) Operadores <-, = , -> Objetos e Atribuição objeto <- expressão > area <- c(303, 379, 961, 295, 332, 47,. 122, 11, 53, 2749). objeto = expressão > area = c(303, 379, 961, 295, 332, 47,. 122, 11, 53, 2749). Pouco Usado: expressão -> objeto > c(303, 379, 961, 295, 332, 47,. 122, 11, 53, 2749) -> area. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(21) Digite o nome do objeto para ver o conteúdo > area [1] 303. 379. > riqueza [1] 3 10 20. Sunday, May 18, 14. 961 7. 8. 295 4. 332 8. 3. 47 5 23. 122. 11. 53 2749.

(22) ls e rm: lista e remove objetos > ls() [1] "area". "modelo1". "modelo2". "previsto" "riqueza". "varea". > rm(varea) > ls() [1] "area". "modelo1". "modelo2". "previsto" "riqueza". Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(23) Linguagem Orientada a Objetos > area [1] 303. 379. > riqueza [1] 3 10 20. 961 7. 8. 295 4. 332 8. 3. 47. 122. 5 23. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14. 11. 53 2749.

(24) Linguagem Orientada a Objetos > area [1] 303. 379. > riqueza [1] 3 10 20. > area [1] 303. 379. > summary(area) Min. 1st Qu. 11.00 70.25. 961 7. 8. 961. 295 4. 295. Median 299.00. 332 8. 3. 332. 47. 122. 11. 53 2749. 122. 11. 53 2749. 5 23. 47. Mean 3rd Qu. Max. 525.20 367.20 2749.00. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(25) 21. Sunday, May 18, 14.

(26) Funções. função(argumento1=valor, argumento2=valor, ...) > plot(x=area, y=riqueza, log=”xy”) > plot(area, riqueza) > plot(area, riqueza, log=”xy”). Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(27) De onde vem as funções? O R é uma linguagem de programação e é modular (qualquer pessoa que saiba falar R pode contribuir com funções criando PACOTES (libraries ou packages) que outras pessas podem usar Base - configurações mínimas para seu funcionamento básico são instaladas (pacotes que vem na instalação “base”). Pacotes são funções desenvolvidas por colaboradores que você pode instalar e usar. Sunday, May 18, 14.

(28) Repositórios do R (CRAN) O programa R (base) e os pacotes estão disponíveis em vários servidores ao redor do mundo. No Brasil há quatro repositórios. Você pode usar qualquer um deles. Sunday, May 18, 14.

(29) install.packages pacotes no CRAN. Sunday, May 18, 14.

(30) require , library Carrega pacotes instalados Um pacote da distribuição padrão (base) > require(MASS) Carregando pacotes exigidos: MASS. > library(MASS) Carregando pacotes exigidos: MASS. Pacote adicionado com install.packages > require(vegan) Carregando pacotes exigidos: vegan This is vegan 1.17-8. > library(vegan) Carregando pacotes exigidos: vegan This is vegan 1.17-8. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(31) help , help.start e args Ajuda sobre funções Texto de Ajuda > help(mean) > ?mean. Hipertexto de Ajuda > help.start(). Argumentos de uma função. > args(lm) function (formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE,contrasts = NULL, offset, ...) Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(32) Um erro comum > help function (topic, offline = FALSE, package = NULL, lib.loc = NULL, verbose = getOption("verbose"), try.all.packages = getOption("help.try.all.packages"), chmhelp = getOption("chmhelp"), htmlhelp = getOption("htmlhelp"), pager = getOption("pager")) { if (!missing(package)) if (is.name(y <- substitute(package))) package <- as.character(y). Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(33) Um erro comum > help function (topic, offline = FALSE, package = NULL, lib.loc = NULL, verbose = getOption("verbose"), try.all.packages = getOption("help.try.all.packages"), chmhelp = getOption("chmhelp"), htmlhelp = getOption("htmlhelp"), pager = getOption("pager")) { if (!missing(package)) if (is.name(y <- substitute(package))) package <- as.character(y). Funções são objetos, como tudo mais no R. Se você digita uma função sem os parênteses, o R entende que vc quer exibir seu conteúdo, no caso seu código.. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(34) 29. Sunday, May 18, 14.

(35) Área de Trabalho (Workspace) •. Área de Trabalho (Workspace) - é o espaço onde você armazena os objetos criados por você. Você pode gravar um Workspace como um arquivo no seu computador (usar a extensão *.Rdata). Função ls() lista o conteúdo do workspace aberto. Sunday, May 18, 14.

(36) Como o R trabalha? l. l. l. l. Os objetos criados são mantidos na memória, até que sejam salvos. Por default, todos os objetos são salvos em um único arquivo oculto no diretório de trabalho, chamado .RData . Ao sair do programa com a função q, o R perguntas se deve salvar as alterações. É recomendável salvar seu trabalho regularmente, com o comando save.image. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(37) save.image , save e load: Salva e carrega a área de trabalho Salva a área de trabalho no arquivo default (.RData) > save.image(). Salva a área de trabalho em outro arquivo > save(file="meuworkspace.RData"). Carrega um arquivo de área de trabalho > load(file="meuworkspace.RData"). Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(38) Diretório de Trabalho (Working Directory) Diretorio de Trabalho (Working Directory) - é o diretório (pasta, folder) do seu computador que está sendo usado pelo R. Nele você pode colocar teus arquivos de dados e nele serão salvos arquivos que você gerar como produto de suas análises (incluindo o .Rdata). Função dir() lista o nome dos arquivos que estão no diretório ativo Função getwd(), ou ‘Get Working Directory’ mostra qual é o diretório ativo Pode usar o menu do R para definir o working directory. Sunday, May 18, 14.

(39) getwd e setwd: Mostra e muda o diretório de trabalho Qual o diretório de trabalho atual? > getwd() [1] "/home/paulo/work/Pos_grad/Eco_USP/cursoR/2011". Muda o diretório de trabalho > setwd("/home/paulo/work/treinos_R/"). Verificando ... > getwd() [1] "/home/paulo/work/treinos_R". Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(40) q: Encerra a sessão do R Sai do programa mas salva a área de trabalho em .RData (se a resposta for “y” !) > q() Save workspace image? [y/n/c]: y. Se a resposta for “n” você perde todas as alterações !. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(41) Como Trabalhar com o R? Dica 1: Separe cada projeto em um diretório l. l. l. Crie um pasta no seu computador onde você irá salvar scripts, dados, figuras, etc. (pode usar subdiretórios) Abra o R e defina ele como pasta de trabalho (se você já tem um arquivo .RData na pasta, então basca clicar duas vezes no arquivo, que a pasta onde está o arquivo será reconhecida automaticamente como pasta/diretório de trabalho. To quit – use q() e peça para salvar o espaço de trabalho como .RData. Sunday, May 18, 14.

(42) Como Trabalhar com o R? Dica 2: salve seus comandos em um arquivo l. Use um editor de textos para escrever seus comandos em um arquivo.. l. Salve este arquivo em seu diretório de trabalho com extensão .r ou .R. l. Envie seus comandos ao R. Três maneiras:. Sunday, May 18, 14. l. Com o comando source ("arquivo.R"): executa todos os comandos. . l. Na interface R-GUI do Windows, use o editor de scripts e ctrl-R para enviar linhas ou blocos para.. l. Use editores próprios para programação em R (e.g., Emacs com módulo ESS, Tinn-R)..

(43) Editor de scripts. Console Sunday, May 18, 14. Plots. Ajuda.

(44) 39. Sunday, May 18, 14.

(45) Classes de objetos. Sunday, May 18, 14.

(46) class(). Classes de Objetos > x.1 [1] 1 2 3 4 5 > class(x.1) [1] "integer" > x.2 [1] 0.33333333 0.16666667 0.08333333 > class(x.2) [1] "numeric" > x.3 [1] "a" "b" "c" "d" "e" > class(x.3) [1] "character" > x.4 [1] TRUE TRUE FALSE FALSE FALSE > class(x.4) [1] "logical". Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(47) is.[classe] e as.[classe]:. Verificação e Coerção de Classes > x.1 [1] 1 2 3 4 5 > x.1t <- as.character(x.1) > x.1t [1] "1" "2" "3" "4" "5" > x.5 <- c("TRUE","TRUE","TRUE","FALSE") > class(x.5) [1] "character" > is.logical(x.5) [1] FALSE > x.5 <- as.logical(x.5) > class(x.5) [1] "logical". Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(48) c. Criação de Vetores > a = c(3.4, pi, exp(-1)) > a [1] 3.4000000 3.1415927 0.3678794. ✴ Um objeto da classe vector no R é um conjunto de elementos de uma mesma classe (números, caracteres, lógicos, etc). ✴ Um objeto vetor no R não corresponde aos vetores de algebra matricial (para isso há a classe matrix). ✴ A função c combina elementos em um vetor. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(49) factor Classe de fatores > sexo <- rep(c("F","M"),each=9) > sexo [1] "F" "F" "F" "F" "F" "F" "F" "F" "F" "M" [11] "M" "M" "M" "M" "M" "M" "M" "M" > class(sexo) [1] "character" > sexo <- factor(sexo) > sexo [1] F F F F F F F F F M M M M M M M M M Levels: F M > class(sexo) [1] "factor". Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(50) table Contagens de Observações > sexo [1] F F F F F F F F F M M M M M M M M M Levels: F M > table(sexo) sexo F M 9 9 > dieta [1] L L L D D D N N N L L L D D D N N N Levels: N D L > table(sexo,dieta) dieta sexo N D L F 3 3 3 M 3 3 3 Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(51) levels Níveis de um fator > politicos <- factor(rep("corrupto",10), levels=c("corrupto","honesto")) > levels(politicos) [1] "corrupto" "honesto" > politicos [1] corrupto corrupto corrupto corrupto corrupto [6] corrupto corrupto corrupto corrupto corrupto Levels: corrupto honesto > table(politicos) politicos corrupto honesto 10 0. Slide de BIE5782-2013 (Ecologia - USP) , A.A. Oliveira e outros prof. - modificado! Sunday, May 18, 14.

(52) 47. Sunday, May 18, 14.

(53)

Referências

Documentos relacionados

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

§ 3º A diferença percentual entre o valor global do contrato e o obtido a partir dos custos unitários do Boletim da CPOS e a TPU/DER-DERSA não poderá ser reduzida, em

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Tal será possível através do fornecimento de evidências de que a relação entre educação inclusiva e inclusão social é pertinente para a qualidade dos recursos de

“Fernando estava disposto a continuar investindo e pretendia convencer os sócios da empresa que a melhor opção era a mudança, através de uma ou mais, das propostas

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

O principal objetivo deste trabalho foi determinar o balanço hídrico do solo a partir da combinação do modelo SIMDualKc e índices de vegetação e relacionar a

os céticos, por fim, são aqueles que, acos- tumados com o centralismo no campo educa- cional e administrativo, ao invés de tomar a autonomia como a capacidade de se autodirigir, e