You are on page 1of 92
Ce eee eee ee 3s ferramentas estas cas ou, mesmo, para os que querem ler sempre mao material de Renee ee a Seo cu ecu n ae eee eet ar Ce ete eo eee ou ee etd onal nos quals ‘+ Formataeodiferenceda dos comandos de entrada assin como 0s de saida do Programa, oque permite See «Figures iusttvas, para melhor entender os varios processos deforma visual, além das tabelas com ee eee ace re eae ere ee ee ee Cee SU eee ee see econo eer arr o digas, velondo-se do uso dos recursos “Copiar © Cola’. Nossas Cre et dita tee ee tee aan ik | 5 Luiz Alexandre Peternelli la’, Uitte eat Tumi © Marcio Pupin de Mello idos a Editora UPV. icagio pode ser reproduzida, apropriada e estocada, , Sem autorizagio do detentor dos seus Conhecendo 0 R Peternelli, Marcio P478e i 2011, na visto estatistica / Luiz Alexandre pin de Mello, — Vigosa, MG : Ed. UI apéndices indice, ISBN 978-85-7269-400-1 ica. I. Mello, Mércio Pu CDD 22.04, 519.5 de. I, Titulo, Chaves va Lana (Beto) da Editora UFV José Roberto da mpressio e acabamento: Divisio de Gi Editora UFV Aos meus pais Leonel Peternelli Filho (in memoriam) € Maria Piedade. A minka esposa Ethel. Aos meus filhos Mariana e Mateus. LAP. os meus pais José Antero e Angela. A minha esposa Bianka. MPM. Apresentagdo © objetivo deste material nfo 6 to somente ensinar um mas proporcionar um ponto de partida para is que desejam comecar a utilizar 0 R e -as. E dar suporte aqueles que de w conhecimentos acumulados com o emprego deste software livre em estudos e anilises est: “lvidos pelos autores a0 longo dos anos. Procuramos, neste trabalho, valorizar 0 uso des tatisticas, na tentativa de abordar, de m: mais complexas, podendo entender cada fnedo representam no contexto, iversos tipos de objeto de trabalho do software, podendo, as vezes, usar exemplos que envolvem problemas esta de 9 a 13 tratam de algumas ferramentas e andlises estatis possiveis de serem realizadas. Nesses, ie usamos varios problemas do co! quais a estatistica esté presente, Os comandos de entrada, as: estiio em formataeio diferenciada, o que per leitor pode contar com diversas figuras ilustat entender 0 processo de forma visual, além das tabelas que re concisamente as operagGes e informagées titeis a0 uso do softwa em. nentiios, criticas, lose podem ser enviados peternelli@ufv.br ou mello@ieee.org. sugestGes e clogios so muito 08 e-mai dos autores: 0s autores Sumario a cca 15 ©0 Rens 15 bre 0s pacates (packages) un izando ¢ obtendo novos pacotes nipulando objetos... Removendo objetes... Listando objetos Atributos dos objetos. Algumas operages aritméticas.... Arredondamentos ¢ aproximagées... ‘Comando round () caPiTULo 3 i Alguns objetos especitis. Vetores Sequénc Usando 0 comando seq: oor data frame de um arquivo-text ‘Como cm matrizes e nomes como em lisas .... ‘ionando colunas, vando um data.frame por grupos Caracteres e fatores..., PATULOS cn trando com dados. Uso da fungio scan : Montando uma matriz com os day Uso da fiungo edit ( Uso da fiingio read. table Lendo dados de um arquivo ASCI CAPITULO S...... Operagdes com vetores e matrizes Algumas fangGes disponiveis, Usando algur CAPITULO 6 Criando gritteos com o R. Uso da fungao plot.() , ‘Um grético simples... Adicionando mais dados a um ‘Mudando o padrio dos pontos, Mudando as linhas. idos de uma planilha eletrénica Definindo o intervalo dos eixos... Adicionando texto .. icadores no grifico... los. 63 ificos mi irimetros grificos... istogramas, jm exemplo ber simples terando alguns pardmetros.. OB IVA enone Girificos de barras “APITULO 7 Z a Ivar ow ler 05 arquivos *R on. ale 79 Ivando ¢ abrindo trabalhos no R et 19 Exibindo e alterando o diretério de trabalho. oe 80 Exibindo 0 contetido de um diretério, 81 CAPITULO 8 82 Criando fungbes ou 82. tendendo o conceito de Fungo 82 1gBes envolvendo loops. 86 CAPITULO 9 Estatistiea Deseritiva nc ‘Notagées de somas e produtos Somatério. Produt6rio. Medidas de posigdo mostra... Média, Mediana, Moda... i Medidas de dispersio emostral 1 89 CAPITULO 10... CAPITULO 11... Alguns testes es ns deia geral sobre os testes de hipéteses.. Introdugai Tipos de crros inerentes aos testes de hipSteses P-value (ou val Para as médias de duas amostras independentes Para as médias de duas amostras dependentes Teste F Outros testes, Kolmogorov-Smimoy © para a normalidade ~ shapiro.test () .... CAPITULO 12..... mento inteiramente easualizado... Delineamento em blocos casualizados Det Experimentos fatoriais Experimentos com dois fatores segundo 0 DIC... Fatorial usando DBC. Teste de Tukey... De grau maior que 1 erifico miitipla. erficie de resposta, los nfo polinomiais. ‘modelo exponencial ros modelos, RENCIAS. APENDICES Extras Experimentos em faixas ‘Modelos mistos.. Média e a varitneia de conjuntos de dados Hotar simbolos 7 Encontrar a moda de um conjunto de dados..... Teste de Tukey Gera modelo polinomi: iNDICE REMISSIVO Algo sobre o R trodugao a andlise ¢ interpretagdo de resultados. Contudo, observa- eS sofiwares e pacotes apresentam custo de aquisigao te clevado. Atualmente, & grande a procura e também 0 cada vez mais, adeptos e aié mesmo colaboradores, é 0 ibiente R, ou simplesmente R, conforme usualmente conhecido usuarios. O R, além de ser gratuito, tem cédigo-fonte 10, podendo ser modificado ou implementado com novos tose fungSes desenvolvidas pelos usudrios a qualquer . OR & portanto, importante ferramenta na andlise ¢ de dados, por apresentar uma gama de ferramentas como tricos e no paramétricos, modelagem linear e nfo linear, i i e de sobrevivéncia, simulagio ¢ Peternellie Mello capacidades do R é a possibilidade de interagio com diversos outros Programas, sejam eles estatisticos, sejam de banco de dados. O programa OR 6 uma linguagem o1 Ross Thaka e Robert Gentleman, que, tegrado, permite a manipulagdo de dados, realizagao de geragio de grificos. © R & uma implementagio da linguager (BECKER et al., 1988), com a vantagem de ser livre. & importante salientar que o R nfo é simplesmente um Programa estatistico, pois, devido as suas rotinas, pode-se com ele também criar, manipular, avaliar e interpretar os procedimentos estatisticos aplicados a dados. O R Development Core Team classificam-no como Ambiente R, em virtue de suas caracteristicas, Entretanto, o abordaremos com: execugao de tarefas comuns em estatistica. Além dos procedimentos icos, o R permite operagdes mateméticas simples, de vetores ¢ mattizes e confeegiio de grificos, Como instalar Instalando o R Para a lago. do R_ basta conectar-se a0 site wwwR-projectiorg ©, em CRAN (Comprehensive R Archive Network), escolher 0 local de disponibilizagio (espelho) do programa mais préximo de onde vooé se encontra. No caso do Brasil, existem atualmente quatro opgdes: Universidade Federal do Parana (PR), Fundago Osvaldo Cruz (RJ), Universidade de Sio Paulo (USP-SP) ¢ USP Piracicaba (SP). Apés escolher 0 espelho, em Download and Install R clique no link que corresponde ao sistema operacional do seu computador (no caso do Windows ~ Windows ~ voeé pode optar pelo stema de 32 ou 64 bit), e depois n “base”. Em seguida, escolha executivel (no caso da versio 2.12.0 para Windows, 0 ima-se R-2.12.0-win.exe. ar bre os pacotes (packages) {ecas siio os nomes mais usados para designar de fungdes (comandos) e, ou, dados agrupados. As R que, em determinado momento, julgaram importante 5 que suprissem suas necessidades. Depois, esses usuarios aram essas fungdes na forma de um pacote (uma com certo nome, para que outras pessoas que necessitem ‘mas funges no precisem implementé-las noyamente. E oragio miitua que faz do R um programa amplo ¢ {ulalizando e obtendo novos pacotes iciar 0 Re clicar na barra de ar pacores..; para receber as (606 atualizadas dos principais pacotes’. Vocé também poder fazer 0 download de pacotes que nao mente instalados em seu computador no site do R a conexio de internet. pot exemplo, para 0 pacote BASE existe um rary/base com um arquivo em eédigo ASCII, contém todas as fungdes desse pacote © suas acotes podem ser cartegados na memoria a qualquer inha de comando do R digitando-se Libeazy te) procedimentos estatisticos, o R pode ser trabalhado 1a realizagio dos mais diversos cileulos ¢ Iniciando o R i Com © R iniciado, vocé veré na tela o simbolo “>” em thar com 0 R. so necessérios alguns conceitos jio abordados em sequéncia. vermelho, que & 0 prompt do R, numa janela conhecida como R Console. Este sinal de prompt receber seus comandos. Acima do prompt em cor a: g6es sobre o sistema e alguns cor inte, 0 comando require (nome_do_pacote) ide ser usado para carregar pacotes (biblio‘ecas). encontram-se algumas informa- dos biisicos. Veja figura a seguir. los ou comandos importantes Comando sponiveis ficam guardadas em uma livraria izada no diretério R_HOME/ibrary (R_HOME € o diretério onde instalado o R). Esse diretério contém os “pacotes de fingies” serd ignorado pelo programa. Este recurso sera ado neste material. grificas © alguns procedimentos, como regressio linear ¢ "Os pacotes mostrados sio os instalados e néo os car~ de varidneia, Cada um desses pacotes instalados possui um Fegados pelo programa. O R carrega alguns pacotes basicos Peternellie Mello -arregar um pak carregado, digi que esteja instalado, mas | library (nome_do_pacote) Obtendo ajuda A ajuda em linha do R pode ser muito util quando se deseja saber como empregar certa fungdo. Considere o seguinte exemplo de aplicagao de ajuds em linha do R. Exemplo Suponha que voc deseja fazer um histograma de dados (um vetor) armazenado mum objeto chamado “ol tem necessidade de colocar em vermelho a cor das barras no ‘ograma. Suponha ainda que vocé ja saiba que 0 comando que ctia histogramas & 0 hist (). Se quiser obter informagdes sobre este comando, inclusive como trocar a cor das barras, digite: help (hist) ou simplesmente: > Phist ioe packageserapnies 2 Tocurentation, Nistegrens Descespeiont ‘me generic function ‘hist’ computes a nistogran of the given data lot~TRUE', che resulting opject of ‘class is plotted by 'plot.nistogran’, before ie 13 tem outras formas de se obter ajuda que no a deserita foima, Veja a seguir algumas delas: Agi de ajuda Comando ‘ajuda sobre o comandoX help (comandox) ajuda no Browse insalado ajuda sobre (pax) o help.start help (package=mva) help. search (*multivariat roca apropos ("modelo") Mostrar exempios do example (comandox) ‘comandoX’ = Tingbes 8 operagies aso pacae base do R Obs.: © comando help () é usado para obter uma descri¢ao deta- Ihada de um comando. Porém, & necessério que 0 pacote a qual este pertenca esteja carregado. Sair do programa Quando desejar encerrar seus trabalhos, pode-se sair do ‘ogtama usando 0 comando q () no prompt. Entéo, 0 programa pet- 0 usudrio se ele deseja salvar 0 trabalho corrente, como mostra Peternellie Mello Altemativamente, pode-se usar o menu suspenso Arquivo-> Sain Manipulando objetos Criando objetos Um objeto pode ser criado com a operagiio de “ io”, gules ls ca om pee ut ans, dependendo da dirego em que se atribui o objeto, A tribuig&o também pode ser feita com o sinal de igualdade “=”; poré: essa forma nfo € muito usual e serd evitada neste livro. imppetane dizer que o nome de um objeto deve comegar com uma letra pi aa maitiscula ou mintiscula, que pode ser seguida de outra letra. ee 0u caracteres especiais como 0 ponto. f Exemplo >X<-10 Ho objeto era bx X xeceberé 0 valor 10 1S-2y lo objeto y receberé o valor 15 > eos fo objeto X recebera o valor 6 > ¥e13 #0 objeto ¥ receberé o valor 13 Observe que existe diferenca entre maitiscul (mesmo para o Sistema Operacional Windows®) > x © miniscula 11) 10 2x ie Outro Exemplo O R Pode ser usado para fazer céleulos. Voed também pode armazenar o resultado de um eéleulo em um objeto qualquer, > Yeveqrt (4) #y receberé o valor da operacia indicada Para mostrar © contetido do objeto cri : pjeto criado “y”, digite ay } do objeto na linha de comando do R, como a seguin S° 0 Runa visio estatistica 23 io comando print(), ou seja, escrevendo print (z) obteriamos 0 mo resultado que escrevendo apenas z (dentro de fungdes, esse lo deve ser usado explicitamente). ‘uidado 20 atribuir nomes a objetos! No exempl tente criado o abjeto “y” com o valor 15, Posteriormente, a0 ye-sart (4), 0 valor consido no objeto “y" foi substituido por sm equivoco bastante comum ao iniciante que trabalha com nto, ateng&o ao atribuir nomes a novos objetos, para que nao se m informagdes importantes armazenadas em objetos jé existentes. Removendo objetos HA uma fangdo para remover objetos: remove () (ou simples- 1rm()). Para usar esta fungi, basta fornecer 0 objeto.a ser removido: Rend feria o objeto A “2 Horia 0 objeto B (A,B) fremove os objetos Ae B Os objetos também poderiam ser removidos separadamente se, em substituiggo ao comando anterior, xm(A), © depois Para remover TODOS os objetos da sua area de trabalho {projeto ativo) digite: Srm(liste1s()) #remove TuDO! Obs.: Tome euidado ao usar esta funcdo, pois uma vez excluido 0 objeto, este se torna irrecuperdvel. Além disso, 0 comando ora citado para remocdo de todos os objetos ndo exibe mensagem de confirmagdo de exclusdo! Obs.: Vocé também pode apagar todos os objetos da meméria usando ‘0 menu suspenso “Misc -> Remover todos os objetos”. Nesse caso, seré exibida uma mensagem de confirmagdo. 24 Peternoli e Mello Listando objetos Agora que ocd ja sabe como criar ou remover objetos na sua area de trabalho, certamente quer ter controle sobre eles, ou sobre 0 que restou deles. A fungio 1s () mostra os objetos que existem em sua rea de trabalho. Obs.: Antes de iniciar 0 exemplo que se segue, remova todos os objetos criados de sua érea de trabalho. Em seguida, execute 08 novos comandos. Exemplo > ac-1; bs-2; e<-3 #";" para separar comandos ye-"do comando"; z<-"List ()" lo € impresso como um vetor, pois, de fato, ele & um vetor! No caso, um vetor de caracteres com os nomes dos objetos existentes. Como em qualquer outra fungao do R, voc’ pode armazenar o resultado em um objeto, inclusive a 1s (). Veja: > obj<-1s() #armazena a lista de objetos > obj #exibe a lista guardada no objeto "obj" fea) "bm Provavelmente voc8 nfo teré razio para fazer isso com frequén- cia, ou talvez nunca precise, mas serve para mostrar como o R opera Atributos dos objetos Conforme mencionado varias vezes, 0 R trabalha com objetos n nome, contetido e um atributo associado que especifica de dado representado pelo objeto. Em uma an: 9, mesmo que dois objetos contenham valores cos, 0s resultados diferem-se quando esses possuem atributos dite ‘A maneira que as fungSes atuam nos objetos também Hepende de seu atributo. ‘Todo objeto possui atributos intrinsecos: tipo e éamanho. Com Fwlugho ao tipo, pode ser: numérico, caractere, complexo ¢ légico. Jixistem outros tipos, por exemplo, fungdes ou expressées, porém ‘4408 niio representam dados. As fungées mode () € Lengtn() mostram o tipo ¢ o tamanho objeto, respectivamente, Outras duas fungGes interessantes so! £() eclass(). Hixemplo ado adiante e(1,3/5,7,12) fe) seré explicad le (x); length (x) tipo e tamanho do objeto x numeric" e-tnngelat; be-TRUB; cc-8i Atipos Aiferentes [foetal node(b); mode(e) fexibe os atributos Existe uma outra forma de verificar atributos em um objeto, por plo, usando a palavra “is” seguida de um ponto ¢ nome do io a qual se deseja verificar. numeric (x) fix tem atributo numérico? ‘TRUE Foi retomado TRUE (do inglés = VERDADEIRO). Caso 0 pbjeto x fosse do tipo caractere, por exemplo, o resultado seria TVALSE (do inglés = FALSO). a Na tabela 2 seguir sfo sintetizados os objetos ¢ scus possiveis, tos (tipos). Veja: 26 Peternellie Mello Odjeto Tipos Supors ios TT ———_ —Eee 3.14159) #seno de Pi radianos é zero Yelor numérico, caractera, complexo ou Togico nfo Tator numérico ou caractere i i 65359e-06 anay nifo ) Hem mais préximo sated Bore ass 2246060-16 hte fame in Cae sim covial (4) #41ea+3#2#1 iia numérico, caractere, complexo, Ta aa fungio, expressiio ete tem indimeras operages no R que nfo foram citadas aqui 9 ser conveniente; porém, estéo disponiveis e podem ser adas em manuais introdutérios. Na tabela a seguir so mostradas algumas operagdes possiveis jizadas no R Obs.: **4s" & uma série temporal e ndo serd abordada neste material. Algumas operac6es aritméticas Vocé pode utilizar 0 R como uma calculadora, inclusive para Fungo Significado céleulos com matrizes, como veremos em capitulos subsequentes, No ravde Geese entanto, neste item nos atemos apenas a cdlculos simples. eee “Antilog de x (eX) Exemplos: Log de base n de x Algumas operagées podem ser realizadas apenas com os sinais Logdebase 10dex de operagao aritmética, Raiz quadrada de x > 243 fsomando estes némeros nlf GlC)) ae ts ante) Funpereignombtics dex em > 24342 m1 tiplicagdo primeiro FungGes trig. inversas de x em radianos Valor absoluto de x fpoténcias utilizande ** ou * Choose (n,x) corresponde @ combinagio den elementos tomados x ax. s_funcdes sfio usadas, como as encontradas em cientificas, » art fraiz quadrada 28 Peiernelie Mello en = Ruma visto estatistiea 29 n fivalor de pi ) 3.141593 Arredondamentos e aproximacées Muitas vezes, ica, podemos estar interessados em apresentar os resultados com certo niimero de casas decimais. Abordaremos, nos itens subsequentes, alguns comandos liteis para aproximagies ¢, ou, arredondamentos, fivalor de pi truncado #o inteiro é 22, sem aproximagées Comando round () roximagées com algarismos significativos Usado quando se deseja arredondar um valor ou conjunto de valores em um mimero preestabelecido de casas decimais. Por exemplo: vezes desejamos arredondar ou aproximar valores desconsi- se 0 mimero de casas decimais, mas nio o de algarismos ivos. Isso pode ser feito com o comand signié (). Vejaa > x yere (3.456754, 2.3432231,6.3589398) #oriando jecimais (2] 3.456754 2.343223 6.358940 fu) 3.142 > round(y,2) #arredondando para duas casas decimais Me-0.000256981 eae [2] 3.46 2.34 6.36 x bs 0. 000256981 0 comando round) ora usado nao alterou, por exemplo, 0 i£(x,5) #x com 5 algarismos significativos valor de “x”, apenas o exibiu arredondado em trés casas deci Para que “x” assuma o valor arredondado, deve-se fazer: [1} 0.00025698 et pind x, fobrerve a diferencal > x<-round(x,3) x xecebe valor arredondado ound (x, 5) a [21 0.00026 ta) 3.142 eto” e “Piso” Truncando valores Adicionalmente, os comandos ceiling() ¢ £floor() podem 1 Usados para aproximar um valor para 0 menor inteiro superior 20 lor especificado (teto) e o maior inteiro inferior ao valor spocificado (piso). Veja: ‘Truncar um valor (niimero) & considerar apenas a parte inteira 'e, descartando seus decimais, sem qualquer tipo de arredonda- so pode ser feito no R, usando-se © comando t rane () 30 Peternelli e Mello > pi (2) 3.241593, fivalor de pi > ceiling(pi) fiteto fl 4 > floor (pi) #piso aia Obs.: Outros comandos com fuuncées semethantes e mais detalhes sobre esas funcdes aqui apresentadas podem ser obtidos com help (nome_da_fung&o) ou ?nome_da_fungao, por exemplo, Pround, ae Alguns objetos especiais as diferencas entre os diversos tipos de objeto impor- um uso mais adequado do R. Existem varios tipos de objeto im ser criados e manipulados. elores OR pode trabathar com vetores ~ objetos que armazenam mais lor. ‘A fined c () 6usada para eriar um vetora partir de seus argumentos, 3,5,7,11) fos cinco primeiros nimeros primos Hexibe o contetide do objeto Mm 2357 1 Os argumentos de ¢ () podem ser escalares ou vetores. x,13,17,19) #adicionando trés némeros primos M) 23 5 71113 1719 quéncias ‘ainda outras formas de se gerar um vetor. Por exemplo, para sequéncia de nimeros inteitos, usam-se os “dois pontos”, Veja: foria sequéncia de inteiros de 1 a 10 Hexibe 0 contetdo do objeto "a" 12345 67 8 910 io 1) 0 R= uma visio estatistica 32 Peternelie Mello Be Peter at Se o vetor & muito longo ¢ nio "cabe"” em uma linha, o R vai ‘usar as linhas seguintes para continuar imprimindo o vetor. ndo rep () Outra fungao itil para produzir vetores 6 a vep(), que retorna 0 fgumento repetido o nimero de vezes indicado pelo segundo > longo<-100:50 fsequéncia decrescente de 100 a 50 > longo Hexibe 0 contetido do objeto [1] 100 99 98 97 96 95 94 93 92 91 90 (12] 89 88 87 86 85 84 83 82 81 90 79 (23] 78 77 76 75 74 73 72 71 70 69 68 (34] 67 66 65 64 63 62 61 60 59 sa 57 [45] 56 55 54 53 52 512 50 p(1,10) #oria um repetigzo B.aiaiiiiia plo (2,2),10) J a221222121212212121212 (rep (0,10), rep (2,5) Os nitmeros entre colchetes nfo fazem parte do objeto, apenas Jooc00c0000212211 indicam a posigo do vetor naquele ponto. Verifica-se que [1] aponta que o primeiro elemento do vetor esté naquela linha; (12) indica que a linha seguinte comega pelo décimo segundo elemento do vetor, ¢ assim por diante. \lem-se ainda usar variéveis (objetos) como argumentos das frepetigéo de "c(1,2)" x vezes Padaigiaszgicazi2naa2 a Usando 0 comando seq () ambos os argumentos tém mais de um elemento, cada » do primeiro argumento sera ento associado ao elemento Uma forma mais comum de produzir sequéncias de valores é usar a fungio seq() , que tem como argumentos 0 inicio, o fim e os assos da sequéncia, respectivamente, > seq(1,10,1) #o mesmo que 1:10 miplos Tee a eee Bs:3,1+4) texanine cate exenpio » s04(2/19,2) observe que nile terninaré em 10 ee Gl1as7s pc (99, 68,77) ,c(3,2,2)) + s04(20,1,3) orden inverea, equivoceda Bis s0 08 80 77 77 Eero on seq.default (10, 1, 3) . sinal errado no argumento ‘by! tas > seq(10,2,-3) #0 correto 6 usando passo negativo.. M) 10 7 4 4 so objetos muito titeis, pois sto usadas para combinar 's coisas em um mesmo objeto, ou seja, vetores, matrizes, ‘ou, caracteres e até mesmo outta listas. Peternelli e Mella = Exemplo mas func6es que retornam listas : Peas-List (idade=24,nome='Aline! Motas=c (98, 95,96) ) Muitas das fungdes do R retornam seu resultado na forma de Sidade exemplo pode ser mostrado com o uso da fungdo test (), (a) 24 a um objeto que é uma lista. fay saLines mplo tee ; isso: um teste t simples para dois conjuntos de mimeros: Snotas [1] 98 95 96 3.23, (4,5,5,4,4) . Listas sdo construidas com a fumgo 1st (). Os componentes Se aes da lista sto introduzidos usando a forma usual (nome = argumento) de atribuir argumentos em uma fungao. Quando voce exibe um objeto que € uma lista, cada componente & mostrada com seu nome (recedido do simbolo $)e valor. Cada um desses componentes da lista pode, entio, ser acessado ividualmente, da seguinte maneira: Note que nada é exibido na tela, porque o resultado foi do no objeto “tt”, Portanto, basta digitar 0 nome do objeto que 0 seu conteiido seja exibido. Veja: p ‘Two Sample t-test > pestnome componente "nome" da lista "peat" x and y (1) "alines “3.182, af = 8, p-value = 0.01296 rnative hypothesis: true difference in means > PesSnotas[2] segundo elemento de gnotas Hania teres (21 95 Pode-se ainda acessar cada elemento pelo seu nimero de ordem na lista, utilizando colehetes duplos: of x mean of y 2.6 part > pes[1] #primeiro elemento da lista "pes" Sidade : rary Verifique que esta saida nao se parece muito com o formato de ee ra apreseniado. Mas o resultado & uma lista. Voo8 pode > pes 1) note a diferenga para o anterior yovar isso usando-se 0 comando a seguir: (1) 24 > pes [2] 98 95 96 du list (ct) fu) tue ou entlio: (ee) List" fiterceiro elemento de "pes" > pes{(3]1 [2] fo mesmo que "pesgnotas [2] " [1] 95 8 pode exibir os componentes da lista com a fungdo Para este objeto com os resultados do teste t temos: es (tt) wstatistic" “parameter” "p. value" [4] "conf.int" "estimate" —"null.value" [7] *alternative" "method" "data.name" €, portant, podemos extrair elementos do objeto tt iualmente, por exemplo: > tegconf int [1] -3.1044729 -0.4955271 ‘conf .1level") 95 & um yetor de tamanho dois, que mostra os limites do intervalo de confianga a 95% para diferenga de tar se perguntando 0 que seria esse Isto & algo adicional chamado atributo do vetor. Atributos nos fornecem informagdes complementares sobre um objeto e, muitas vyezes, so usados internamente pelo programa. Nesse caso, 0 atributo nos diz o nivel de confianga com o qual o intervalo foi calculado. Obs. O teste t serté abordado detathadamente adiante, Matrizes Tudo o que foi feito até aqui baseou-se em vetores. Porém, 0 R também & capaz de operar matrizes. Veja a seguir como manipular Criando matrizes HA vérias formas de ctiar uma matriz, A fungi matrix () be um vetor como argumento ¢ o transforma em uma matriz de ‘do com as dimensdes especificadas. i Exemplo xe-1:12 _Heria uma sequéncia de 1a 12 em x > mat<-matrix(x,neol-3) dmatriz de 3 colunas com x > xmat fexibe a matriz criada (2) 1 dig isn 8 2 6 wD do yin fag 4 Neste exemplo foi construida uma matriz de 3 colunas ¢ 4 nhas, usando-se os mimeros de 1 a matriz € reenchida ao longo das colunas. Para inverter este padriio deve-se Jonar 0 argumento byrow=TRUB, (que, em inglés, significa or linhas”) para dizer que a matriz. deve ser preenchida por matrix (x,ncol=3,byrow=TRUE) fpreenchendo por linhas 2) G2) 3] a eta bes 4.5 6 aia is 10 41 12 Obtendo informagées sobre a matriz Vocé pode verificar a dimensio de uma matriz com a fungao im(): » xl<-matrix(1:12,neol=4) fimatriz no objeto x1 » dim(x1) fidimensées da matriz x1 I 34 valor retornado é um vetor com 0 mimero de a matriz, nesta ordem, A fungao cummary () opera em cada como se cada uma delas fosse vetor, cal das descritivas summary (31) x1 x2 3 Min, :1.0 Min, 74,0 Min, 38 Peternellie Mello +5 Ist Qu. Ast Qu.:7.5 -0 Median Median :8.0 © Mean’ Mean :8.0 +5 3rd gu 3rd Qu.:8.5 +0 Max. Max. 19.0 Se vocé desejar um resumo de todos os elementos da matriz, basta transformi-la em um vetor antes de solicitar a fungao summary () > summary (ae. vector (x1) } Min. 1st Qu. Nedian Mean 3rd Qu. Max. 1.00 3.75 6.50 6.50 9.25. 12.00 Alternativamente, 0 comando summary (as numeric (x1 ird produzir o mesmo resultado, Obs.: O termo “as” é usado para converter 0 atributo “tipo” do objeto, Por exemplo, se um objeto “2” & numérico e queremos trans. formé-lo em caractere, basta digitarmos as. character (2), Um exemplo do uso do “as” seré mostrado no tépico “Caracteres e Fatores”. Mais informagées sobre construcéo de matrizes Hé outras fungdes que podem ser usadas pata construir matri- zes: cbind ). Estas fangdes aumentam ou criam matrizes adicionando (“colando") colunas e linhas, respectivamente, na matriz (ou vetor) original, Exemplo > Xx vendo o R—uma visto estatstica 39. Hadicionando uma 3* coluna » ye-rbind (y,c(99,99, 99) )#adicionando uma nova linha >yY £2) (21 031 fe J 0 os 9 4 $03 te ee a 99 99 9 Podem-se usar cbind() e rbind() também com a idade de “juntar” matrizes. Veja: » <-cbind (y, rep (88,6) -y) C1) G2) 03) G4) Gs) 061 tnd Sa ee oa 96 alee a7) 68 eink OB) Stas l ae Wx fre de OB a gS AEs ig Bae US 99 99 99 88 99 99 99 Peternellie Mello —____Petemelti e Melto, Indices das matrizes Da mesma forma que voce pode extrair partes de yetores seazando-se colehetes, conforme apresentado anteriormente. num exemplo do item Listas, podemos também usar os colchetes para (ASG Partes de uma matriz. Porém, esse procedimento é um pouco ado com mui cuidado, para que } Possibilidade de serem gerados resultados equivocados. Essa qinuldade pode ocomer pois a matriz é um elemento que possu deg dimensdes, enquanto vetores tém apenas uma, mero da coluna em tra. Como exemplo, se quisermos demir © elemento da segunda linha © quinta coluna da matriy "> definida anteriormente, fazemos: > 2[2,5) nig Woes pode extrair uma linha inteira ou uma coluna inteira usando apenas um mimero e a virgula, numa ordem definida Para ero da coluna desejada depois da . Para extrair uma linha, ponha 0 mimero da linha desejada antes da virgula. Quando vocé seleciona uma linha ou uma coluna, 0 > 2Lal fextraindo a quarta coluna 88 62 68 88 ae 8 34] Mis 3 Hextraindo a terceira linha 388 8 3 3 Pode-se ainda extair mais de uma finha ou coluna uilizando wm ‘vetor de indices. Nesse caso, o objeto resultante é uma matriz. Veja: > 2[e(1,3,5) fextraindo trés linhas 163) (4) O51 6) 1,7] Bea BB aid! ups tr Bi eS aCe ere conyers Jee Saye eye te 41 Ruma visto estatistica #extraindo trés colunas... 9: 3),¢(4,6)]#tomando uma submatriz 2x2 ou be 4 Spee Mais sobre indices ilises é querer Um procedimento comum durante as anal ae todas as linhas de uma matriz que obedecem a uma certa igo definida pelas colunas. Geralmente, os dados sio ccnados em matrizes, em que cada linha corresponde a uma essoa ou algum tipo de unidade, engua ul fvdidas tomadas desses unidades: Voce pode querer pessoas (linhas) que atendem a certo critério (idade, sexo etc.). Hixemplo Vamos definir uma matriz em que as colunas armazenam: zl lices 1 a 5, coluna 2 = idade, © coluna 3 = sexo cado com 0 ou 1), de cinco pessoas. » pessoas<-chind (c(1,2,3,4,5 pessoas Lal aS a a S84 areca Cl a a3, Bo.a6~ ay i de Agora queremos extra todas as pessoas que tém mais que 4 , cada colina pode armazenar cence anos (observe que a idade esti na coluna 2). Podemos fazer iss» col IMs tipos. Por exemplo, a primeira coluna pode ser m . lum tinico comando, ou seja: > idosos<-pessoas [pessoas [,2]>50,] é a uy representa uma medida realizada em cada umidade, ou ay "a n conjunto de dados oriundos de algum experimento aa 3 sera posteriormente submetido a uma andlise de or exemplo. Note que esse simp! les comando combina diversas operagdes de uma sé vez, Podemos ispecionar minuciosamente o comando, (2) 43 55 52 23 46 0 no formato de data.frame (mais adiante, esse assunto seré ido). Um formato comum de dados é na forma de (0 com uma linha para cada registro, com elementos or espagos ou virgulas, idere o arquivo “alunos.dat”: Esta parte simplesmente selecionou a segunda coluna da matriz que 6 um vetor. > pessoas[,2] >50 (1) FALSE TRUE TRUE FALSE FALSE mado foi comparade com o ntimero 50, para verificar quais elementos do vetor eram maiores que esse valor. O resultado foi um vetor légico de TRUE e FALSE, ae 2,50 ino Media prinete > pessoas [pessoas [,2]>50,] Be rt acca ner 1) 6,2] (,3) 2 "55 2 rake. repetante 3 52 0 intolinj23,ensino' super ior, segundo, nga’ repetente Ao final, foram selecionadas as linhas para as quais a condigao > ladeira, te nts mos a fungdo read. table) para ler esses dados e arma- Obs.: De maneira anéloga, podem-se selecionar colunas que atendam Hil los em um objeto. Forecemos o nome do arquivo (entre aspas) & dum certo critério, quando isso for conveniente. re de separacao dos elementos (virgula). O comando é: se comando, € necess formarmos 0 caminko completo de menu suspenso “Arquivo Data.frame Os data.frames sio muito parecidos com matrizes, Eles tém linhas e colunas e, Portanto, duas dimensdes. Entretant », diferente- Peternelli¢ Mello R—uma visio estatstica comando pode citar apenas o nome do arquivo, sem a necessi- vi va v3 va vs dade do caminho, conforme mostrado a seguir. Pedro de Souza 35 Bnsino Médio texceiro repetente » alunos<-read.table("alunos.dat", sep= > alunos Os nomes das colunas podem ser definidos como em listas, ¢ as 1 = José da Silva 32 Ensino Médio primeiro Blunossva a ae erates 2 (alunos) «=< (ome ee coe 7 n&o repetente Ti) José da Silva Pedro de Souza [)) carlos Santos Rodrigo Pereira © R ria, entio, 0 objeio alunos, que corresponde a um BB) Beso castro, Felipe Sena al }) Diogo Santolin : data frame com sete linhas ¢ cinco colinas (V1 até V3). Note que a a le algumas colunas so numéricas, enquanto outras sfio de earacteres (texto), i. Isto no € possivel com matrizes, apenas com data.frame e listas, Os nomes das linhas podem ser definidos usando-se a fungio Obs.: Se as colunas forem separadas por espagos ou tabulagdes no names () arquivo texto, o argumento sep=néo é necessério, flexibindo nomes das linkas n men og Yow.names (alunos) a) "a" rae nge wan \: Em matrizes, também podemos usar esses comandos para identificar com nomes as linhas e colunas. Indices como em matrizes e nomes como em listas O arquivo foi lido em algo que se parece um pouco com uma matriz. Podem-se usar indices para selecionar linhas e colunas da ‘mesma forma que em matrizes: alunos[,2] (11 32 35 16 23 25 22 23 enor 2 3<-cbind (alunos Nota=c (43,38, 91,78, 91,79,82)) 46 Petermelli¢ Mello 0 R— uma visto estaistica 47 > alunos ii ence Nome Idade Grau Ano Nome Idade Grau Ano 1 José da Silva 32 —-Ensino Médio primeiro Vous da Silva 32 Ensino Médio primeiro 2 Pedro de Souza 35 —Ensino Médio terceiro Pedro de Souza 35 Ensino Médio terceiro 3. Carlos Santos 16 _—_Eneino Médio primeiro Repetente Nota 4 Rodrigo Pereira 23 Ensino Superior ‘segundo repetente 43 5 Tiago Castro 25 Eneino Superior terceiro Fepetente 38 6 Felipe Sena 22 Ensino Superior segundo , 7 Diogo Santolin 23 Ensino Superior segundo Esse comando é muito itil em experimentos fatoriais, quando se Repetente Nota deseja discriminar 0 conjunto de dados segundo os niveis de um repetente 43, determinado fator. repetente 38 hilo repetente 91 1 2 2 | O comando merge (af1,d£2) pode ser usado quando se 4 nfo repetente 79 5 6 7 ddesoja combinar os dataframes “afl” e “df2”. Digite merge para maiores detalhes. ndo repetente 91 nao repetente 79 ndo repetente 82 acteres e fatores Quando a fiangdo read. table () encontrar uma coluna que no composta exclusivamente de mimeros, ela é definida como fator. 0 pode desejar que certas colunas sejam fatores, enquanto outras o exemplo, as colunas Nome, Grau, Ano e Repetente sio categ6- lor); porém, Idade e Nota provavelmente no o so. As colunas In ser convertidas de um formato para outto. Veja: f.factor(alunos$Nome) #"alunos$Nome" 6 um fator? A) TRoB Junos$Nomec-as. character (alunos$Nome) #converte Separando um data.frame por grupos Comumente, deparamo-nos com a necessidade de separar nossos dados em grupos. Suponha que necessitissemos dividir o conjunto de dados acima em repetentes e ndo repetentes. Poderiamos fazer isso facilmente, digitando: > split (alunos, #dados a serem divididos alunos§Repetente) #fator a ser agrupado $"nlo repetente! Nome dade Grau Ano 3 Carlos Santos 16 _Ensino Médio primeiro Baractere 4 Rodrigo Pereira 23 Ensino Superior segundo factor (alunos$Nome) fracunass tome ie) Eatore: 5 Tiago Castro 25 Ensino Superior terceiro a) vatse 6 _ Felipe Sena 22 Ensino Superior segundo Uapises eenolin | aay asins Bee eee aracter(alunos$Nome) #6 caractere? Repetente Nota A) Rue 3 ndo repetente 91 4 nio repetente 79 5 nfo repetente 91 6 ndo repetente 79 7 nfo repetente 62 | ery Entrando com dados © conjunto de dados a ser usado em deter ser digitado ida anélise pode fetamente no console do R, como visto anteriormente, 8 extemnos. Nesse caso, diversos comandos podem lade de ler ou editar dados. Entre eles podemos read.table() edata() ser usados com a citar: scan(), edit ( Uso da fungéo scan () Esta fungao tem como finalidade a entrada de dados do console ou de um arg Abordaremos aqui apenas como ler dados do console, que & uma grande utilidade dessa fungdo. Dessa maneira, o R permite 0 uso do prompt entrada de dados em um vetor sem a separago por virgulas, ou a digo de cada valor em uma linha distinta. Veja o exemplo, Exemplo Suponha que o seu desejo seja criar um vetor com uma coluna de valores que voce tenha digitado, uti indo-se_um_ editor de texto qualquer (um valor em cada linha, ou na mesma linha separado por espagos) ou mesmo uma planilha eletrénica. nto, podem-se usar os comandos Copiar e Colar oferecidos pelo sistema operacional 9 Ruma visio estatstica 49 Lae oige apertar 0 botdo Enter, depois (Ctrl#V) 0 texto selecionado e, finalmente, teclar 0 botiio Enter ente, » testec-scan() fusado para entrada de dados 10 Obs.: Esse iiltimo enter exigido na fungdo scan () é necessério para finalizar a entrada dos dados. te fiverificando valores armazenados 10 20 30 40 50 Obs.: Para maiores informagdes digite ?scan no prompt do R. Montando uma matriz com os dados de uma planilha eletrénica ‘Seja uma planilha com duas colunas de dados. Na coluna A 65 tratamentos, ¢, na B, os valores de y (resposta), Os valores nesmo processo ora descrito (com o uso da fungi scam()): » trat<-scan() #e cola-se os valores da coluna A SO Patemett eto Assim, 0 R salvaré um objeto com 0 nome “trat” contendo os dados de interesse. Repetindo-se 0 mesmo procedimento para a coluna B da planilha. > ye-scan() #e cola-se os dados copiados da coluna B ‘Uma matriz com os dados poderd ser obtida fazendo-se: > dados<-chind(trat, y) Observe que 0 novo objeto “dados” terd suas colunas nomeadas de acordo com os nomes atribuidos a cada objeto eriado. Veja 0 exemplo. Exemplo Compare a figura da planilha mostrada a seguir (& esquerda) com 0 objeto gerado (A direita) usando-se o procedimento ora descrito. ES evitar erros futuros, recomenda-se eliminar da meméria do liares eriados, fazendo-se: fixemove os objetos *trat" e "y* demos verificar se 0 objeto “dados” € um data.frame, ata. frame (dados) FALSE 1 R retorna FALSE, indicando que esse objeto nfo é um Para transformé-lo em tal faga: data. frame (dados) #converte em data. frame cervamos agora que o resultado é VERDADEIRO: ido-se 0 comando: attach (dados). Ao finalizar a and- devemos dar 0 comando detach (dados). io da fungao edit () pmo © proprio nome sugere, essa fungo & iitil na edigiio de {05 jd existentes, sejam esses vetores, data.frames, fingdes etc. iponha que voc8 tenha os dados: B) 10 20 30 40 50 Gm, houve um erro: o tiltimo elemento deveria ser “60” & > testez<-edit (teste) eesti ey10, 20, 30, 40, Depois de alterar 0 vetor (assim como se usa or de textos), basta fechar a janela e salvar que 0 novo objeto “teste2” é atribuido com a edigdo de “teste”. Confira: > teste2 [41 10 20 30 40 60 Uso da funcdo read. table () Essa € uma ferramenta muito util. O R pode ler arquivos de texto (ASCID além de outros formatos (Excel, SAS, SPSS etc,), ¢ alé ‘mesmo acessar banco de dados SQL. Porém, as fangGes necessdrias & gio de algumas dessas operages no se encontram na teca BASE. Por esse motivo, nos restringiremos apenas a0 rimeiro caso, ou seja, 0 de e6digos ASCII (arquivos de texto) Observe que a primeira linha & de cabegalho. Se este arquivo salvo no diretétio “R” dentro da pasta-raiz (por exemplo: yord.dad), basta entrar com 0 comando: -os<-read.table( #1@ dados de um ees tes/ayeoord. da", feaminho completo do anguivo — #primeira linha € cabecalho ‘A fangdo é usada da seguinte maneira: «vos ti "enderego e lo iivo" a > ¥ead.table("endereco completo do arquivo", h=T) Soe Obs. h=? é necessirio se a primeira linha do arquivo de dados ed contiver as informacées sobre 0 nome das colunas (linha de ae eabecalho). Caso contrario, escrever h=F ou omitir esse € 10 13 Pardmetro; outra observagéo importante é que as barras no 712 12 endereco devem estar nesse sentido: /", mesmo quando o a 1112 sistema operacional em questao é 0 Windows®. sila 1013 8 nia 8 Lendo dados de um arquivo ASCII eer 14 15 15 Exemplo 1515 7 Deseja-se ler os dados do arquivo “coord.dad” que contém as Coordenadas espaciais de 15 pontos. As colunas estio separadas por pago em branco, Veja 0 arquivo: .: Para ler arquivos de dados contidos no R, utiliza-se a funeiio data(). condo o R—wna visio estatistica 55 U(A)%*#A HAA (onde A’ é a transposta de A) colunal coluna2 coluna3 solunal 5 5 = Produto de vetores Operagées com vetores e matrizes Apresentaremos aqui um bom exemplo para mostrar al; ‘operagdes possiveis com vetores e mattizes. bi 5 Se se deseja calcular 0 quadrado dos valores do vetor, entéio importincia do uso do simbolo ites e depois do asterisco. Veja: golunal*colune2 {il 410 Exemplo De inicio, criaremos vetores que compordo as colunas de 5 . f colunas dé Finalmente, a inversa de uma matriz nao singular quadrada: polve(A) #inversa da matriz A Lal O21 31 unal 0.5555556 -0.1111111 -0.2222222 juna2 -0.2222222 0.4444444 -0.1111111 juna3 0.1121111 -0.2222222 0.5555556 > colunate-c(2,1,0) > colunaz<-¢(1,3,1) > coluna3<-c(1,1,2) Agora, criaremos uma matri ; iz de nome A com os vetores ctiados. Observe que existem outras formas de etiar matrizes, ’ > Ac-cbind(colunai, coluna2,coluna3) an Caso ainda haja voc’ pode testar a veracidade da jo anterior usando simples dlgebra. Multiplique a inversa de uma pela sua matriz original e o resultado deve ser uma matriz iden- de com as mesmas dimensbes da matriz a qual se deseja testar. Veja: polve(A)S*8A — #verificagio colunal coluna2 coluna3 1 1 1 3 L ° 1 2 Obtendo colunal coluna2 coluna3 e ‘a transposta de A. colunal 1 -2.775558e-17 ° > ea) coluna2 0 1,000000e+00 ° Ci 31 coluna? 0 0.000000e+00 2 colunat "2 : colunaz2 1 Podemos fazer arredondamento com cinco casas decimais, Solunad oh, Winey syorevendo por exemplo: nd (solve (A) 8¥8A,5) colunal coluna2 coluna3 0 ax Apenas a titulo de exemplo, faremos alguns célculos: colunal 1 0

You might also like