Análise Exploratória de Dados 2006 Aula lig-01 – 9/3 R - UMA INTRODUÇÃO R - INTRODUÇÃO ferramenta de análise estatística de dados com muitos recursos e possibilidades; é constantemente atualizado e revisado incluindo novas técnicas e métodos; é um programa de domínio público: http://cran.r-project.org http://cran.r-project.org Download and Install R Precompiled binary distributions of the base system and contributed packages, Windows and Mac users most likely want one of these versions of R: Linux MacOS X Windows (95 and later) R for windows This directory contains binaries for a base distribution and packages to run on Windows (NT, 95 and later) on Intel and clones (but not NT on Alpha and other platforms). Note: CRAN does not have Windows systems and cannot check these binaries for viruses. Use the normal precautions with downloaded executables. Subdirectories: base Binaries for base distribution (managed by Duncan Murdoch) contrib Binaries of contributed packages (managed by Uwe Ligges) You may also want to read the R FAQ and R for Windows FAQ. R-2.2.1 for Windows This directory contains a binary distribution of R-2.2.1 to run on Windows 95, 98, ME, NT4.0, 2000 and XP on Intel/clone chips. Patches to this release are incorporated in the r-patched snapshot build. A build of the development version (which will eventually become the next major release of R) is available in the r-devel snapshot build. In this directory: README.R-2.2.1Installation and other instructions. CHANGESNew features of this Windows version. NEWSNew features of all versions. R-2.2.1-win32.exeSetup program (about 25 megabytes). Please download this from a mirror near you. This corresponds to the file named SetupR.exe or rwXXXX.exe in pre-2.2.0 releases. oldThe previous release. md5sum.txt md5sum output for the setup program. A Windows GUI version of md5sum is available at http://www.md5summer.org/; a Windows command line version is available at http://www.etree.org/md5com.html. R - INTRODUÇÃO Para solicitar uma tarefa do R podemos digitar uma linha de comando ou, se a tarefa é complexa, digitar várias linhas de comando, respeitando-se a sintaxe do R. Podemos digitar uma seqüência de comandos em um editor de textos, o Notepad, por exemplo, e depois colar na tela de comandos do R para que o mesmo execute as tarefas solicitadas. Esta sucessão de comandos é chamada um programa ou código ou função. Tal programa ou função, pode conter apenas uma linha com uma única tarefa a ser executada como conter várias páginas com comandos a serem executados. R - INTRODUÇÃO Os programas em R, bem como os dados a serem explorados, podem ser armazenados em arquivos de texto (extensão .txt). Os dados também podem ser armazenados em uma planilha de cálculo e depois, salvos como arquivo texto para que possam ser lidos no R. R - INTRODUÇÃO Todas as funções do R devem ser digitadas em letras minúsculas pois o R é sensível a letras maiúsculas e minúsculas. Todas as palavras-chaves do R estão em letras minúsculas. O R não reconhecerá,por exemplo, o comando MEAN(x), pedindo para calcular a média de uma base de dados x. O correto será digitar mean(x), que retornará a média de uma base de dados x. Comando de atribuição Para começar veremos como é a forma de um comando de atribuição no R. Ou seja, como fazemos para atribuir a alguma variável, x (por exemplo), o valor 4. x=4 Experimente atribuir a uma variável x1 um valor qualquer, a outra variável x2 outro valor qualquer e finalmente, atribua à z o valor da soma de x1 e x2. Exemplos x1=4 x2=6 z=-x1+x2 Operações soma: + subtração: divisão: / multiplicação: * potenciação: ** ou ^ raiz quadrada de n: sqrt(n) logaritmo natural: log(n) Concatenação Exemplo 1: x=c(1:100) O efeito do comando acima será atribuir à x, os 100 primeiros inteiros positivos. Para acessar valores de diferentes posições do vetor x, a forma é a seguinte: x[i], desde que i seja um numero inteiro entre 1 e 100. Caso contrário, ele retornará NA que é o símbolo usado no R para dados não disponíveis. vetores Para acessar um intervalo de valores, por exemplo, de 10 a 25: x[10:25] [1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 R - HELP O Help no R tem um papel fundamental pois é bastante completo e auto-suficiente. Quando precisamos aplicar alguma técnica cujo comando não conhecemos, basta chamarmos a função help da seguinte forma: help(palavra-chave) R - Usando o help Suponha, por exemplo, que estejamos interessados em conhecer as possibilidades do comando mean (média). Chamando a função help(mean) obtemos: mean package:base R Documentation Arithmetic Mean (Média Aritmética) Descrição: Função genérica para média aritmética (podada). Como usar: mean(x, ...) mean.default(x, trim = 0, na.rm = FALSE, ...) Comando mean: alguns detalhes. Argumentos: x: um objeto do R. trim: a fração ( de 0 à 0.5) das observações a serem podadas de cada extremo de ‘x’ antes da média ser calculada. Obs. Se `trim' é não-nula, uma média podada simetricamente é calculada com uma fração de observações excluídas de cada extremo igual ao valor de ‘trim’. na.rm: um valor lógico (T ou F, conforme verdadeiro ou falso) indicando se valores ausentes (NA) devem ser desconsiderados antes de realizar o cálculo. Valor: Se `trim' é zero (default), a média aritmética dos valores em `x' é calculada. Exemplo 2: Cálculo da média aritmética do vetor x do exemplo 1 Sabemos que a soma dos inteiros de 1 até 100 é dada por 100*(1+100)/2=5050, tal que a média aritmética dos valores no vetor x é 5050/100=50.5. Podemos calcular esta média digitando mean(x). Uso do argumento trim. Suponha que desejamos `podar’ os valores extremos desta base na ordem de 5% para cima e para baixo. Ou seja, ficaríamos com uma base começando em 6, indo até 95. Exemplo 2: (cont.) Observe que neste caso, a média podada, qualquer que seja o valor atribuído à trim entre 0 e 0.5, sempre será 50.5, por conta da simetria apresentada por estes dados. Experimente pedir mean(x,trim=0.05) mean(x,trim=0.1) mean(x,trim=0.25) mean(x,trim=0.5) Porém, este resultado não ocorre para qualquer conjunto de dados! Exemplo 3: Novos dados Atribua a um vetor y, os seguintes valores: 8,9,3,4,5,5,6,7,11,1,11,20,5,5,6,7,8,9,11,3 y=c(8,9,3,4,5,5,6,7,11,1,11,20,5,5,6,7,8,9,11,3) > mean(y) [1] 7.2 > mean(y,trim=0.25) [1] 6.6 > mean(y,trim=0.1) [1] 6.8125 > mean(y,trim=0.5) [1] 6.5 Exemplo 3: continuação y<-c(8,9,3,4,5,5,6,7,11,1,11,20,5,5,6,7,8,9,11,3) Ordenando as componentes do vetor y: y_ord=sort(y) (y_ord recebe o vetor y ordenado) [1] 1 3 3 4 5 5 5 5 6 6 7 7 8 8 9 9 11 11 11 20 Observe que 10% de 20 é igual a 2 e, assim, a média podada em 0.1 é obtida calculando-se a média do vetor ordenado, retirando os dois valores menores e os dois valores maiores. > mean(y_ord[3:18]) [1] 6.8125 > mean(y,trim=0.1) [1] 6.8125 Exemplo 4: Dados ausentes (NA) Suponha que alguns valores da base de dados não estão disponíveis. Por exemplo, faça z=c(1,1,3,3,4,4,3,2,NA,3,4,5,4,NA) Neste caso, se você pedir mean(z), o retorno será NA! Caso ainda assim você deseje uma média entre os valores disponíveis, use o argumento na.rm=T (remover valores não disponíveis recebe Verdadeiro). > mean(z,na.rm=T) > mean(z) [1] 3.0833 [1] NA Observe que a média calculada quando na.rm=T, leva em conta somente os valores disponíveis. Assim, o denominador envolve o número de dados disponíveis que no caso deste exemplo é 12. Leitura de um arquivo de dados em formato texto Há dois comandos principais para ler uma base de dados em formato texto: scan e read.table. Normalmente, usa-se o comando scan quando a base de dados contém os valores de uma única variável. Para bases de dados multivariadas, contendo diversas variáveis, o comando read.table é mais adequado pois a estrutura dos dados lidos será a de uma matriz onde as colunas representarão cada variável da base. EXEMPLO 5: CARNAVAL 2006 Salgueiro Vamos usar o comando read.table com a planilha de resultados do desfile de escolas de samba do Carnaval 2006. (Fonte: http://www.liesa.globo.com) Descrição dos dados: Há 14 escolas de samba uma em cada linha, e 40 notas atribuídas. Na primeira linha encontram-se os nomes das entradas, a saber, coluna 1: escola Rocinha Imperatriz Caprichosos VilaIsabel GrandeRio BeijaFlor PortoPedra Mangueira Viradouro Mocidade UnidoTijuca ImperioS Portela EXEMPLO 5: CARNAVAL 2005 Coluna 2 a 5: b1, b2, b3 e b4 (notas atribuídas por 4 jurados ao quesito bateria) Colunas 6 a 9: enr1, enr2, enr3 e enr4 (notas atribuídas por 4 jurados ao quesito enredo) Colunas 10 a 13: mspb1, mspb2, mspb3 e mspb4 (notas atribuídas por 4 jurados ao quesito mestre-sala e portabandeira) colunas 14 a 17: c1, c2, c3 e c4 (notas atribuídas por 4 jurados ao quesito conjunto) colunas 18 a 21: h1, h2, h3 e h4 (notas atribuídas por 4 jurados ao quesito harmonia) colunas 22 a 25: cf1, cf2, cf3 e cf4 (notas atribuídas por 4 jurados ao quesito comissão de frente) EXEMPLO 5: CARNAVAL 2006 colunas 26 a 29: ev1, ev2, ev3 e ev4 (notas atribuídas por 4 jurados ao quesito evolução) colunas 30 a 33: f1, f2, f3 e f4 (notas atribuídas por 4 jurados ao quesito fantasia) colunas 34 a 37: aa1, aa2, aa3 e aa4 (notas atribuídas por 4 jurados ao quesito alegorias e adereços) colunas 38 a 41: se1, se2, se3 e se4 (notas atribuídas por 4 jurados ao quesito samba-enredo) Coluna 42: perdapt (pontos perdidos) Coluna 43: total (total de pontos obtidos pela escola) Exemplo 5 (continuação) Portanto, a planilha está organizada em 15 linhas (a primeira com os nomes das variáveis) e 43 colunas. Esta é uma base de dados multivariada, pois há mais de uma informação para as nossas unidades de observação que, neste exemplo, são as escolas de samba. Para cada escola, temos várias informações, a saber, as notas atribuídas por cada um dos jurados-quesitos, a penalidade e o total obtido. Assim, usaremos o comando read.table. dados<-read.table(“m:\\aed\\carnaval06.txt”,header=T) Acessando a base dados O conteúdo do arquivo carnaval06.txt foi atribuído ao objeto dados no R. O argumento header=T serve para informar que a primeira linha do arquivo contém os nomes das variáveis. Veremos como acessar e manipular a informação contida em dados. Exemplo: o quesito harmonia está nas colunas 18 a 21 da base. Para vermos estas notas basta digitar dados[,18:21]. Também é possível olhar os mesmos dados usando dados$h1, dados$h2, dados$h3 e dados$h4. ATIVIDADE Compare as médias das notas em harmonia para cada jurado. Repita o mesmo para outros quesitos avaliados. Digitando mean(dados[,18:21]), obtém-se: h1 h2 h3 h4 9.671429 9.807143 9.692857 9.864286 Médias referentes à harmonia entre as 14 escolas segundo cada um dos 4 jurados. Arredondamento O resultado apresentado ficou muito confuso, pois as médias foram apresentadas com muitas casas decimais. Para obter as médias com, por exemplo, duas casas decimais, devemos digitar: mediaH<-mean(dados[,18:21]) --> o objeto mediaH recebe as médias de harmonia de cada jurado round(mediaH,digits=2)--> pede-se a impressão na tela das médias arredondadas para duas casas decimais h1 h2 h3 h4 9.67 9.81 9.69 9.86 Relatório Você pode guardar todos os resultados que vai obtendo numa seção em um arquivo texto. Comando sink(“ a:\\relatorio.txt” ) Após este comando, tudo que você pedir na seção do R será gravado neste arquivo (exceto os gráficos) Para desativar o comando, você deverá digitar sink(). Salvando a área de trabalho do R Você pode salvar sua área de trabalho, caso ainda vá trabalhar nela. Vamos fechar esta primeira aula salvando nosso trabalho em um disquete. save.image(“a:/aulaR1.RData") Assim na próxima seção do R onde os mesmos dados serão trabalhados, bastará executar o comando load(“a:/aulaR1.RData") Saindo do R Após terminar de salvar, você pode sair do programa digitando: q( ) Resumo dos comandos Atribuição x=3 Concatenação y=c(3,4,2,5,6) help(palavra-chave) mean(x) calcula a média dos valores em x sort read.table scan sink round q() save.image load