Buscar

Resumo_capitulos 1 a 6

Prévia do material em texto

R
O Programa: o R tem suas raízes em duas linguagens anteriores: a linguagem S (BECKER, et al., 1988) e a Scheme (SUSSMAN; STEELE Jr., 1998).Foi criado como um projeto de pesquisa pelo neozelandés Ross Ihaka e pelo canadense Robert Gentleman (IHAKA; GENTLEMAN, 1996); e nos dias atuais está sob constante desenvolvimento por um grupo chamado R Core Team.
Onde Buscar Ajuda?
Vocé pode procurar na mailing list usando as palavras chaves red line ou draw colored líne. Note que o idioma oficial das mailing lists é o inglês. Para saber como se cadastrar e utilizar as mailing lists acesse http://www.r-project.org/mail.html.
Sobre os Pacotes
Todos os comandos disponíveis no seu R ficam estão agrupados em pacotes, que, por padrão, são guardados fisicamente· no diretório R_HOME/library (R_HOME é o diretório onde foi instalado o R).
Neste diretório, os pacotes são gravados em subdiretórios. Nele você certamente encontrará o pacote chamado “base”, que constitui o núcleo do R e contém comandos gráficos e alguns procedimentos, como regressão linear e análise de variância. Cada um desses pacotes instalados possui um diretório próprio - por exemplo, para o pacote “base” existe um caminho R_HOME/library/base com um arquivo em formato texto, chamado "INDEX", que contém a descrição do pacote assim como a listagem de todos os comandos e todos os conjuntos de dados. Essas informações também podem ser acessadas digitando library (help=base) no prompt de comando do R. Para visualizar a lista de todos os pacotes instalados, basta digitar no prompt:
> installed.packages()
Quando você inicia o R, automaticamente ele carrega alguns pacotes necessários para o funcionamento básico do software, por exemplo, base, graphics e utils, dentre outros. Para visualizar os pacotes' carregados na memória, digite:
> search ()
Contudo, existem alguns pacotes instalados que nao estão carregados na memória. Para carregar um já instalado, basta usar o comando library () ou o comando require (), acrescentando entre os parênteses o nome do pacote a ser carregado, por exemplo:
> library ("boot")
No caso do comando library () as aspas no nome do pacote são opcionais", Sempre que iniciar o R e quiser usar um pacote que não é, por padrão, carregado na inicialização do R, você terá que carregá-lo manualmente. (No apêndice, no final do livro, é ensinado comocarregar pacotes automaticamente na inicialização do R).
Para instalar um pacote que não faça parte da instalação padrão do R, estando conectado à internet, pode-se usar o comando install.packages (), acrescentando entre os parênteses o nome do pacote entre aspas, como:
> install. package s ("modeest ")
Após pressionar o ENTER, o R mostrará urna lista de espelhos de onde o pacote poderá ser baixado, Escolha, preferencialmente, um local perto de onde você está. O R fará então o download do pacote e o instalará em seu computador. Entretanto, apesar de instalado, o pacote ainda não está carregado. Antes de utiliza-lo, você deve carregá-lo usando library (modeest) - lembre-se de substituir o modeest pelo nome do pacote de seu interesse-. Os pacotes estão em constante aperfeiçoamento. Assim, de tempos em tempos, são lançadas novas versões contendo melhorias, novos comandos e novos conjuntos de dados. Portanto, é importante atualizar periodicamente os pacotes instalados no seu R. Para atualizar um pacote específico, por exemplo o boot, basta digitar update. package s ("boot"). E, para atualizar todos os pacotes instalados no seu R, digite:
> update.packages(ask=FALSE)
O argumento ask definido como FALSE garante que o R instalará as novas versões disponíveis sem pedir confirmação, Lembre-se que é necessário ter conexão com a internet para atualizar os pacotes!
Você também poderá fazer, a partir do site do R, o download de pacotes que não estão previamente instalados. Na versão do R para Windows, para instalar os pacotes, pode-se usar o menu suspenso "Pacotes -> Instalar pacote(s) ..." ou mesmo "Instalar pacote(s) a partir de arquivos zip locais...", caso você tenha baixado a versão compactada (zip) do pacote no site do R.
Começando a Usar o R
Existe uma lógica fácil ao buscar ajuda no R. Quando você não sabe qual comando utilizar, procure-o com base em urna palavra-chave (em inglês) usando duas interrogações. Suponha que você queira criar uma sequência (sequence) numérica, mas não sabe qual o comando para criá-la. Para descobrir, você pode digitar:
> ??sequence
O R irá então abrir seu navegador de internet e mostrar todos os comandos, dentro dos pacotes instalados, que contenham a palavra sequence na descrição.
Agora que descobriu o nome do comando (seq), você terá de saber como usá-lo. Se a ajuda do seu R abriu em um navegador de internet, você pode simplesmente clicar sobre o link com o nome do comando desejado (base: :seq). Caso seu R esteja configurado para abrir a ajuda dentro da própria janela de usuário", você deve então digitar, no prompt do R, o nome do comando desejado antecedido de urna interrogacáo. Por exemplo:
> ?seq
o R irá entáo exibir a ajuda do comando seq (), contendo diversas informacñes sobre este.
De maneira geral, a ajuda dos comandos inclui uma descrição (Description); uma explicação de como usar o comando (Usage); detalhes sobre os argumentos (Arguments), também chamadas de parâmetros; detalhes que sejam importantes para o entendimento do comando e, ou, de seus argumentos (Details); uma descrição do resultado esperado (Value); a lista com a(s). referências bibliográficas relacionada(s) ao comando (References); sugestões de comandos relacionados ou similares ao comando que está sendo exibido (See also); e exemplos de como utilizar o comando (Exemples). Para melhor entendimento, considere o seguinte exemplo de aplicção da ajuda do R.
Suponha que você precise criar uma sequência de números inteiros de 1 a 10. Entretanto, você quer que o incremento entre os números seja igual a 3. Ou seja, você deseja criar uma sequência com os números 1, 4, 7 e 10. Conforme discutido anteriormente, você descobriu, usando?? sequence que deve utilizar o comando seq () do pacote "base". Além disso, com seq você descobriu quais argumentos do comando seq devem ser usados. Dessa forma, digite no prompt:
> seq(from=l,to=10,by=3)
[1] 1 4 7 10
Existem diversas outras formas de se obter ajuda no R
Comandos e Argumentos
Conforme mencionado, o R é feito de inúmeros comandos agrupados em pacotes. Estes comandos são executados pelos seus respectivos nomes, seguidos de parênteses ( ). Quando você digita o nome de um comando, mas não abre e fecha parênteses, o R exibirá o código programado para aquele comando.
O comando help (), por exemplo, é usado para exibir a ajuda associada a determinado comando, como mostrado anteriormente. Para tanto, você deve digitar help () e, entre parênteses, colocar o nome do comando do qual você quer ver a ajuda (por exemplo: help (seq () i). Mas quando é digitado apenas help, o R exibe o código programado no comando help (). Portanto, todos os comandos do R devem ser realizados seguidos de parênteses ( ), mesmo que nada seja digitado entre os parênteses.
Os comandos, por sua vez, possuem argumentos que definem como O comando será executado. No exemplo apresentado anteriormente com o comando seq (), definimos os argumentos from; to e by iguais a 1, 10 e 3, respectivamente. O comando seq possui outros argumentos, como Lenqth.out e along.with, mas não é necessário utilizá-los no exemplo.
Os argumentos dos comandos são definidos usando o sinal de igualdade (=) e separados uns dos outros por uma vírgula (por exemplo from=l, to=10, by=3). Os nomes dos argumentos devem ser digitados explicitamente se estiverem fora de ordem. Por exemplo: como o primeiro, o segundo e o terceiro argumentos do comando seq () sao exatamente from, to e by, o mesmo resultado do exemplo anterior podería ser assim obtido:
> seq(1,10,3)
[1] 	1	4	7	10
Contudo, se trocarmos a ordem dos números, o resultado será completamente diferente. Tente:
> seq (3, 10, 1)
[1]	 3	 4	 5	 6	 7	 8	 9	 10
Manipulando Objetos
Umobjeto pode ser criado com a operação de atribuição, a qual se denota como uma flecha, com o sinal de menos' e o símbolo > ou < dependendo da direção em que se atribui o objeto. É importante dizer que o nome de um objeto deve começar com uma letra qualquer, maiúscula ou minúscula, que pode ser seguida de outra letra, número ou caractere especial, como o ponto.
Exemplo 1:
> x<-10		#o objeto x receberá o valor 10
>15->y.A	#o objeto y.A receberá o valor 15
>X<-6		#o objeto X receberá o valor 6
>Y1=13		#o objeto Y1 receberá o valor 13
Observe que existe diferença entre maiúscula e minúscula.
> x
[1] 10
> X
[1] 6
Exemplo 2:
Foi mostrado superficialmente no início deste capítulo e será detalhado no Capítulo 4 que o R pode ser usado para fazer cálculos. E você também pode armazenar o resultado de um cálculo em um objeto qualquer:
> x< - sqrt (4) #x recebe o valor da operação indicada
Para mostrar o conteúdo do objeto x criado, digite apenas o nome do objeto no prompt do R, como a seguir:
>x
[1] 2
Como visto anteriormente, o número 1 entre colchetes significa que a visualização do objeto inicia-se pelo seu primeiro e, nesse caso, único elemento. Esse comando é implícito no comando print (), ou seja, escrevendo print (x) obteríamos o mesmo resultado que escrevendo apenas x (dentro de funções, esse comando deve ser usado explicitamente).
Cuidado ao atribuir nomes a objetos! No exemplo, havíamos inicialmente criado o objeto x com o valor 10. Posteriormente, ao escrever x< -sqrt (4),o valor contido no objeto x foi substituído por 2. E um equívoco bastante comum ao iniciante que trabalha com o R. Portanto, atenção ao atribuir nomes a novos objetos, para que não se percam informações importantes armazenadas em objetos já existentes.
Removendo Objetos
Há um comando no R para remover objetos: remove (), ou simplesmente rm (). Para usá-lo, basta fornecer o nome do objeto a ser removido:
> A<-1		#cria o objeto A
> B<-2		#cria o objeto B
> rm(A,B)	#remove os objetos A e B
Os objetos também poderiam ser removidos separadamente fazendo-se, em substituição ao comando anterior, rm (A) e, depois, rm (B). Para remover TODOS os objetos da sua sessão atual do R digite:
>rm(list=ls())	#remove TUDO!
Obs.: Cuidado ao usar este comando pois uma vez excluído o objeto, este se toma irrecuperável. Além disso, o comando ora citado para remoção de todos os objetos não exibe mensagem de confirmação de exclusão!
Obs.: Você também pode apagar todos os objetos da memória usando o menu: no Windows, "Mise -> Remover todos os objetos".
Listando Objetos
Agora que vocé já sabe como criar ou remover objetos na sua Sessao do R, certamente quer ter controle sobre eles ou sobre o que restou deles. O comando 1s () mostra os objetos que existem em sua sessáo atual do R. Exemplo:
> a<-l; b<-2; c<-3 #";" para separar comandos
> X<_"USO"; y<-“do comando”;	z<-“list()”
> x;y;z	# exibindo os objetos "x", "y" e "z"
[1] "uso”
[1] "do comando”
[1] "list ()”
> ls()	#lista todos os,objetos existentes na memória
[1] “a” “b” “c” “x” “y” “z”
Note que o resultado é impresso como um vetar, pois, de Tato, ele é um vetar! No caso, um vetar de caracteres com os nomes dos objetos. Como em qualquer outro comando do R, você pode armazenar o resultado em um objeto, inclusive a ls().Veja:
> obj<-ls() #armazena a lista de objetos
> obj #exibe a lista guardada no objeto "obj”
[1] “a” “b” “c” “x” “y” “z”
Propriedades dos Objetos
Conforme mencionado várias vezes, o R trabalha com objetos. Quando você importa seu banco de dados para trabalhar no R, ele o armazena como um objeto; o resultado de um teste t também é um objeto (veja Capítulo 11); ou mesmo quando você cria urna sequência numérica, como fizemos anteriormente, o R a entende como um objeto. Contudo, existem diferentes propriedades que caracterizam os objetos e são elas que influenciam a interação que cada comando irá ter com um objeto do R. Em uma análise estatística por exemplo, mesmo que dais objetos contenham valores idênticos, os resultados diferem-se quando esses possuem propriedades diferentes. A maneira que os comandos atuam nos objetos também depende de suas propriedades.
Estrutura de Dados
No R, os dados contidos em um objeto podem estar organizados em diferentes estruturas.
A sequência numérica que criamos anteriormente, por exemplo, é entendida pelo R como um objeto no qual os dados estáo estruturados como um vetar (vector).Para fazer análises estatísticas em geral, dados estruturados como data.frames sao bastante utilizados. Os nomes dos comandos que criam cada urna das estruturas mencionadas na Tabela 2.3 sao exatamente aqueles listados na coluna "Estrutura" daquela tabela (por exemplo, o comando matrix () cria matrizes, o data. frame () cria data.frames).
Atributo dos Objetos (página 36)
Para o R, (quase) todo objeto possui atributos como tipo, tamanho etc. Tipo e tamanho sao os atributos intrínsecos de todo objeto. O tipo de um objeto é revelado pelo comando mode ().
Cada objeto pode ter apenas um tipo. De maneira geral, determinado vetor, matriz, array ou fator pode possuir somente um único tipo, entre: character, nume ric, logical ou complex. Já outras estruturas de dados mais complexas, como uma lista ou um data.frame podem ser do tipo list, que permite combinar os tipos character, numeric, logical e complex em um mesmo objeto. O tipo de um objeto é o atributo que controla como o R interpreta e manipula este objeto. Por exemplo, se um objeto contém determinado texto (character) o R não conseguirá fazer operações matemáticas com ele. Entretanto, o R é perfeitamente capaz de realizar essas operações com objetos do tipo numérico (numeric). Veja:
Note que os elementos do tipo caractere (character) são tratados no R com o uso de aspas. Vale relatar também que o R interpreta o tipo lógico como uma variável booleana, em que o valor zero representa o FALSE (falso) e o valor um representa o TRUE (verdadeiro).Veja:
Obs: No R, não é preciso escrever TRUE ou FALSE, podem-se usar as abreviações (sempre maiúsculas) T e F, respectivamente. Experimente digitar x <-T e depois y <-TRUE e compare os resultados. Outro atributo intrínseco de todo objeto é o tamanho. Um objeto pode conter um ou mais elementos. Por exemplo:
Além dos atributos intrínsecos (tipo e tamanho), os objetos podem ter diversos outros atributos: nomes, dimensão etc. Os nomes dos elementos contidos num objeto, por exemplo, é um atributo controlado pelo comando names () .Veja:
Para o objeto "escola", por exemplo, o comando str () mostra que ele contém três elementos, tipo numérico (num), sendo eles os valores 100,45 e 55, com atributo names, com três elementos do tipo caractere (chr), sendo eles: alunos, masc e fem. O comando atributes () retorna uma lista com todos os atributos não intrínsecos de um objeto.
Quando atribuímos ao objeto escola, que era um vetor com três elementos, duas dimensões (1 linha e 3 colunas), o R passa a tratá-lo como uma matriz de 1 linha e 3 colunas. Existe outra forma de verificar atributos em um objeto, por exemplo, usando a palavra “is” seguida de um ponto e nome do atributo a qual se deseja verificar. Esta forma aplica-se tanto ao atributo tipo quanto a estrutura de dados. Veja:
Urna forma simples de alterar o tipo e a estrutura de dados de um objeto é usando “as”, seguida de um ponto e o novo tipo ou estrutura de dados desejada. Por exemplo:
Note que nenhuma das duas operações acima foi salva. De fato, o R apenas converteu x de vetar em matriz para exibir na tela; assim como ele o fez com a conversão de numérico em caractere. Caso você queira salvar a conversão, deve atribuí-la ao próprio objeto, 0)1seja:
> x<-as .matrix (x)	 #x recebe x como matriz
O mesmo procedimento é utilizado para conversão de numérico em caractere. Note que agora o R não exibiu nada na tela após a conversão, mas salvou a operação no próprio objeto x.
Infinito, NaN e NA
O R possui também alguns elementos especiais, como o infinito (tanto positivo quanto negativo: Inf e -Inf, respectivamente), elementos chamados "nãonúmero" (NaN, do inglês, Not a Number) e valores ausentes (NA do Inglês, Not Available; também conhecido pelo termo missing data). O infinito pode ser tanto o resultado de uma operação quanto atribuído por você a determinado objeto. Veja:
Note que, apesar de NaN e NA serem completamente distintos, o resultado de is.na() para um NaN também é "verdadeiro" (TRUE). Entretanto, para um elemento NA o comando is.nan() retorna FALSE. O NA é usado para representar um dado ausente. Por exemplo, suponha que você esteja mensurando o peso das pessoas que trabalham no seu laboratório. Se, por alguma razão, você não conseguiu coletar o peso de alguém, este será representado no seu conjunto de dados por um NA. Veja:
Por padrão, um NA é do tipo lógico, mas quando atribuído a um objeto de um outro tipo, ele incorpora a propriedade "tipo" deste objeto.
Alguns comandos, por exémplo o mean (), que calcula a média aritmética de um conjunto de dados, não operam com elementos NA. -- Entretanto, pode-se usar o argumento na. rm=TRUE como alternativa.
Capítulo 3
Objetos Especiais
Vetor
Uma das principais estruturas de dados do R é o vetor (vector). É interessante mencionar que os vetores podem armazenar um ou mais elementos do tipo numérico, caractere, lógico ou complexo, mas cada um deles suporta apenas um dos tipos mencionados. A maneira mais simples de criar um vetor é usando o comando “e ()”, que concatena elementos num mesmo objeto.
Os argumentos de e () podem ser tanto elementos únicos quanto outros objetos com um ou mais elementos.
Para sequências de números inteiros, em que o incremento é igual a unidade (tanto positiva quanto negativa), há ainda outra forma de se gerar um vetor: usando-se os "dois pontos". Veja:
Se o vetar é muito longo e não cabe em urna linha, o R vai usar as linhas seguintes para continuar imprimindo o vetor.
Verifica-se que [1] aponta que o primeiro elemento do vetar é o elemento 100; [12] indica que a linha seguinte começa pelo décimo segundo elemento do vetor (89), e assim por diante. Usando LETTERS ou letters também é possível gerar vetores com letras (nesse caso, o resultado será do tipo caractere). Veja:
Obs.: LETTERS, letters, month. abb, month. name e pi silo as chamadas "built-in constants". São constantes implementadas no pacote base do R. Experimente digitar pi no prompt do R para ver o resultado! Para saber mais detalhes digite “?letters”.
Repetições (página 45)
Outro comando útil-para -produz vetores é o rep (),que retorna o primeiro argumento repetido o número de vezes indicado pelo segundo argumento (times):
Podem-se ainda usar objetos como argumentos:
Se ambos os argumentos tém mais de um elemento, cada elemento do primeiro argumento será então associado ao elemento correspondente do segundo argumento. 
Índice em Vetores
Os dementas armazenados em um vetar podem ser acessados através dos chamada s índices, com o uso de colchetes [ ].
Outra maneira de acessar determinados elementos de um vetar é construindo expressões lógicas. Suponha que você queira selecionar no vetar x criado no exemplo anterior apenas os elementos cujo valor seja menor que seis. Então, você pode digitar:
>x[x<6]	#apenas os elementos menores que 6
[1] 	5	4	3	2	1
Outra facilidade extremamente útil é utilizar índices precedidos do sinal de menos (como se fossem valores negativos) para eliminar elementos de um vetor.
Matriz
Tuda o que foi feito até aqui baseou-se em vetares. Porém, o R também é capaz de operar matrizes. Veja a seguir- como criar e manipular matrizes.
Criando Matrizes
Há várias formas de criar uma matriz. O comando matriz () recebe um vetar como argumento e o transforma em uma matriz de acordo com as dimensões especificadas.
Neste exemplo foram construídas matrizes de três colunas e quatro linhas, usando-se os números de 1 a 12 do vetar x. Note que as matrizes são preenchidas ao longo das colunas. Para que a matriz seja preenchida por linhas deve-se alterar o argumento “byrow”, que, por padráo, está definido como FALSE, para TRUE:
Note que até agora as matrizes foram criadas definindo-se o número de colunas ou o número de linhas. De fato, como estamos usando os valores de x (12 elementos) para preencher a matriz, precisamos definir apenas um dos dais argumentos. Mas podem-se criar também matrizes com um único valor definindo ambos os argumentos de urna vez. Veja:
Obtendo Informações sobre a Matriz
Dimensão de uma matriz com o comando “dim()”:
o valor retornado é um vetar com dais elementos (que correspondem as duas dimensões da matriz): o primeiro mostrando o número de linhas e o segundo o número de colunas da matriz. O comando “surnmary ()” também pode ser usado para obter informações de qualquer objeto, inclusive de matrizes. Quando utilizado com matrizes, ele opera nas linhas da matriz como se cada urna delas fosse um vetar, calculando algumas medidas descritivas:
Se desejar um resumo de todos os elementos da matriz, basta transforma-la em um vetor antes de usar o comando “surnmary ()”.
Os comandos cbind() e rbind() concatenam colunas ou linhas, respectivamente, na matriz (ou vetor) original.
Podem-se usar cbind () e rbind() também com a finalidade de "juntar" matrizes, Veja:
Como mostrado no capítulo anterior, é possível transformar um vetor em matriz usando-se “as.matriz ()” ou atribuindo ao vetor o atributo de duas dimensões através do comando “dim ()”.
Índice das Matrizes
Da mesma forma que você pode capturar partes de vetores utilizando colchetes, conforme apresentado anteriormente, podemos também usá-los para extrair partes de urna matriz. Urna vez que as matrizes possuem duas dimensões e não apenas uma, como os vetores, use colchetes com dois números separados por vírgula. O primeiro número indica o número da linha, enquanto o segundo mostra o número da coluna em que o elemento de interesse se encontra. Por exemplo, se quisermos extrair o elemento da segunda linha e quinta coluna da matriz z definida anteriormente, fazemos:
> z[2,5]	 #elemento da linha 2 e coluna 5
[1]	9
Você pode extrair urna linha ou urna coluna inteira usando apenas um número e a vírgula, numa ordem definida. Assim, para extrair urna coluna, coloque o número da coluna desejada depois da vírgula, deixando de definir o número da linha. Para extrair urna linha, ponha o número da linha desejada antes da vírgula e não defina nenhum valor para a coluna. Quando você seleciona uma linha ou urna coluna, o resultado é um vetor.
Pode-se ainda extrair mais de urna linha ou coluna utilizando um vetor de índices. Nesse caso, o objeto resultante é uma matriz. Veja:
Assim como para os vetores, express6es lógicas também podem ser usadas nos índices de matrizes para selecionar os elementos que atendam a determinado critério. Suponha, por exemplo, que vocé queira selecionar os elementos da terceira linha de z que sejam maiores que 5. Veja: o
> z[3,z[3,]>5] 	#valores da linha 3 maiores que 5
[1]	 8	 88	 8
De maneira simplificada você utilizou os índices da matriz. Quando definiu como 3 o valor antes da vírgula, você deu um comando ao R para selecionar os elementos da linha 3 da matriz. No segundo índice, a expressão “z [3 r ] > 5” sinaliza ao R para identificar na terceira linha da matriz “z’ os elementos maiores que 5.
Obs: De forma análoga, podem-se utilizar expressões para selecionar colunas que atendam a certo critério, ou mesmo combinar expressões para linhas e colunas, quando conveniente.
o R também é capaz de identificar o índice de um ou mais elementos que atendam a determinados critérios. Por exemplo, suponha que você queira identificar na matriz z, do exemplo anterior, os elementos maiores que 50.Vocé pode digitar:
Note que o argumento “arr.ind”, quando definido como TRUE, faz com que o comando “which()” retorne as coordenadas (nesse caso, matriciais) dos elementos que atenderem ao critério definido.

Continue navegando