Tabela de conteúdos

Uso da Linguagem R para Análise de Dados em Ecologia

2. Primeiros Passos

Instalação do R

Os arquivos necessários para instalar o ambiente R estão disponíveis gratuitamente no sítio oficial http://www.r-project.org/.

A página oficial do R é a referência básica para seus usuários e desenvolvedores, onde você também encontra instruções de instalação, listas de discussão, tutoriais, documentação e muitas informações úteis.

Iniciando o R

Em ambiente UNIX (como o Linux, por exemplo), podemos iniciar o R a partir do interpretador de comandos (shell) digitando o comando R:

parsival@jatai $ R

Já no sistema MS-Windows, é necessário clicar no ícone apropriado (no desktop) ou buscar o programa a partir do menu Iniciar.

Independentemente de como inicia, o R apresenta uma tela com (aproximadamente) a seguinte forma:

R version 2.7.0 (2008-04-22)
Copyright (C) 2008 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R é um software livre e vem sem GARANTIA ALGUMA.
Você pode redistribuí-lo sob certas circunstâncias.
Digite 'license()' ou 'licence()' para detalhes de distribuição.

R é um projeto colaborativo com muitos contribuidores.
Digite 'contributors()' para obter mais informações e
'citation()' para saber como citar o R ou pacotes do R em publicações.

Digite 'demo()' para demonstrações, 'help()' para o sistema on-line de ajuda,
ou 'help.start()' para abrir o sistema de ajuda em HTML no seu navegador.
Digite 'q()' para sair do R.

[Área de trabalho anterior carregada]

>                                                                           

A Linha de Comando

O R é uma linguagem interativa, ou seja, que permite ao usuário enviar um comando por vez e receber o resultado1). Para isso, usamos a linha de comando, que tem o sinal “>” quando o R está pronto para receber um comando.

Os outros dois estados da linha de comando são o de execução e o de espera para a conlusão do comando. No modo de execução não é exibido nenhum sinal e não é possível digitar outro comando. Você só perceberá isso se der um comando que tenha um tempo de execução muito longo.

O estado de espera ocorre quando o usuário envia um comando incompleto, o que é indicado por um sinal de “+”:

>
> log(2
+ )
[1] 0.6931472
>               

Na primeira linha, não fechamos os parênteses da função log e demos enter. O R responde com o sinal de espera (+), indicando que o comando está incompleto. Digitando o parêntese que falta e apertando a tecla enter novamente o R retorna o resultado do comando, precedido de um índice numérico.2)

Sintaxe Básica dos Comandos

Um comando no R em geral inclui uma ou mais funções, que seguem a seguinte sintaxe:

<box center red>função(argumento1 = valor, argumento2 = valor , …)</box>

Como nos exemplos abaixo:

> plot(x=area,y=riqueza)
> plot(area, riqueza)
> plot(area,riqueza,xlab="Área (ha)", ylab="Riqueza")

Mais detalhes na seção sobre funções.

Criação de Objetos: Atribuição

Você pode “guardar” o resultado de um comando com a operação de atribuição, que tem a sintaxe:

<box red 20%> objeto recebe valor </box>

Há dois operadores que atribuem valores a um objeto dessa maneira:

Uma forma de atribuição menos usada é: <box red 25%> valor atribuído a objeto </box>

Nesse caso, o sinal de atribuição é o hífen seguido de sinal de maior, formando uma seta para direita: ->

Há, portanto, três maneiras de guardar os resultados de um comando em um objeto:

> a <- sqrt(4)
> b = sqrt(4)
> sqrt(4) -> c

Para exibir o conteúdo de um objeto, basta digitar seu nome

> a
[1] 2
> b
[1] 2
> c
[1] 2

Se a atribuição é para um objeto que não existe, esse objeto é criado. Mas cuidado: se já há um objeto com o mesmo nome na sua área de trabalho, seus valores serão substituídos:

> a <- sqrt(4)
> a
[1] 2
> a <- 10^2
> a
[1] 100

Mensagens de Erro e de Avisos

Como em qualquer linguagem, o R tem regras de sintaxe e grafia. Mas contrário das linguagens humanas, mesmo um pequeno erro torna a mensagem incompreensível para o R, que então retorna uma mensagem de erro:

> logaritmo(2)
Erro: não foi posssível encontrar a função "logaritmo"
> log(2))
Erro: unexpected ')' in "log(2))"
> log(2, basse=10)
Erro: unused argument(s) (basse = 10)
> log(2, base=10)
[1] 0.30103

Em outros casos, o comando pode ser executado, mas com um resultado que possivelmente você não desejava. O R cria mensagens de alerta para os casos mais comuns desses resultados que merecem atenção :

> log(-2)
[1] NaN
Warning message:
In log(-2) : NaNs produzidos

Para Sair

Para sair do R, a forma mais fácil é usar o comando q (do inglês quit). Nesse caso o R, lhe pergunda se você deseja salvar (gravar) sua sessão de trabalho.

> q()
Save workspace image? [y/n/c]: 

As opções são: y = yes, n = no, c = cancel.

Como o R Guarda os Dados?

O que significa a pergunta feita quando damos o comando q()?

A resposta passa por três conceitos importantíssimos, que são o diretório de trabalho, a sessão e a área virtual de trabalho (workspace).

Cada vez que você inicia o R, dizemos que se inicia uma sessão.

O diretório a partir do qual você iniciou o R é o diretório de trabalho dessa sessão. Para verificar seu diretório de trabalho, use o comando getwd3):

> getwd()
[1] "/home/paulo/work/Pos_grad/Eco_USP/cursoR"

Para alterar o diretório de trabalho há a função setwd:

> setwd("/home/paulo/work/treinos_R/")
> getwd()
[1] "/home/paulo/work/treinos_R"

A sessão iniciada está ligada a uma área de trabalho particular chamada de workspace.

Tudo o que você faz durante uma sessão (leitura de dados, cálculos, análises estatísticas) é realizado no workspace.

Mas o workspace permanece na memória do computador. Somente quando você dá o comando de sair (q()) é que o R lhe pergunta se você deseja gravar o seu workspace. Se você responde 'y', o R grava um arquivo chamado .RData4) em seu diretório de trabalho. Na próxima vez que o R for chamado desse diretório, o conteúdo do arquivo .RData será carregado para o “workspace”.

Aprenda este Comando para Não Perder Seu Trabalho

Se acontecer do computador ser desligado durante uma sessão do R, tudo que foi feito será perdido!!! Para evitar isso, é interessante gravar com frequência o workspace utilizando o comando 'save.image()':

> save.image()
>

Por default, o R gravará o workspace no arquivo .RData, e quando você reiniciar uma sessão, o R automaticamente carrega esse arquivo. Mas você pode salvar em outro arquivo utilizando o argumento file da função:

> save.image(file="minha-sessao-introdutoria.RData")
>

Como o R carrega automaticamente apenas o arquivo .RData que está no diretório de trabalho, caso deseje carregar outros arquivos você deverá usar a função load:

>##Carrega um arquivo de workspace no mesmo diretório
> load(file="minha-sessao-introdutoria.RData")
>##Carrega o arquivo default de workspace de outro diretório:
> load(file="/home/paulo/work/treinos_R/.RData")

Aprenda este Procedimento para Organizar Seu Trabalho

Crie um diretório de trabalho para cada análise, ou mesmo para versões diferentes da mesma análise, e chame o R desse diretório. Fazendo isso você recupera seu trabalho de maneira simples, bastando salvar as alterações regularmente com o comando save.image() e confirmar a gravação das alterações ao encerrar a sessão.

Ao contrário do que você pode estar acostumado(a), não é uma boa idéia manter vários arquivos com diferentes versões dos dados ou análises em um mesmo diretório. Os usuários de R em geral mantém o padrão da linguagem, de um único arquivo default por análise, o .RData, criando quantos diretórios forem necessários para organizar o trabalho.

Gerenciando a Área de Trabalho

Listando Objetos

O comando ls lista todo o conteúdo da área de trabalho, se não é fornecido argumento:

> ls()
[1] "consoantes" "CONSOANTES" "vogais" "VOGAIS"

A função ls possui argumentos que podem refinar seus resultados, consulte a ajuda para os detalhes.

Apagando Objetos

O comando rm apaga objetos da área de trabalho:

> ls()
[1] "consoantes" "CONSOANTES" "vogais"     "VOGAIS"
> rm(consoantes)
> ls()
[1] "CONSOANTES" "vogais"     "VOGAIS"

Consulte a ajuda da função rm para seus argumentos.


Exercícios

<box left | 2.1. Exercício para Usuários Windows: Diretório de Trabalho >

  1. Crie um diretório para seus exercícios da disciplina.
  2. Chame o R, clicando no ícone da área de trabalho ou na barra de tarefas.
  3. Verifique o seu diretório de trabalho.
  4. Mude o diretório de trabalho para o diretório que você criou.
  5. Verifique o conteúdo da área de trabalho.
  6. Carregue o arquivo letras.RData.
  7. Verifique novamente sua área de trabalho.
  8. Saia do R, tomando o cuidado de salvar sua área de trabalho.
  9. Repita os passos 2 a 5.

Pergunta: Que problemas você percebeu? Há uma maneira de iniciar o R no windows que evite esses problemas? </box>

Como Conseguir Ajuda no R

No R é essencial aprender a procurar auxílio e manuais sozinho. Após um aprendizado inicial, não há meio de evoluir no conhecimento do ambiente R se não se buscar os helps que ele possui.

O Comando ''help''

Para conseguir ajuda sobre um comando pode ser usada a função help:

> help(mean)

ou então o operador de ajuda que é o sinal de interrogação '?':

?mean

No caso se buscar ajuda sobre um operador (símbolo para operações aritméticas e algébricas) devemos utilizar as aspas duplas:

> help("+")
> ?"*"

Ao utilizar esses comandos (help e ?) o R entra num modo interativo diferente: help interativo. Ele apresenta uma help page que você pode examinar usando os seguintes comandos de teclado:

No modo help interativo também é possível se fazer uma busca por uma palabra (string) usando a tecla '/', na forma:

/string

Executado um comando de busca temos dois novos comandos válidos:

A Tela de Ajuda

O conteúdo do help interativo pode parecer árido à primeira vista, mas é extremamente informativo, assim que nos acostumamos com ele. As seções são padronizadas, e seguem sempre a mesma ordem:

Abaixo o conteúdo da ajuda para a função ''mean'':
mean                  package:base                  R Documentation

Arithmetic Mean

Description:

     Generic function for the (trimmed) arithmetic mean.

Usage:

     mean(x, ...)

     ## Default S3 method:
     mean(x, trim = 0, na.rm = FALSE, ...)

Arguments:

       x: An R object.  Currently there are methods for numeric data
          frames, numeric vectors and dates.  A complex vector is
          allowed for 'trim = 0', only.

    trim: the fraction (0 to 0.5) of observations to be trimmed from
          each end of 'x' before the mean is computed.

   na.rm: a logical value indicating whether 'NA' values should be
          stripped before the computation proceeds.

     ...: further arguments passed to or from other methods.

Value:

     For a data frame, a named vector with the appropriate method being
     applied column by column.

     If 'trim' is zero (the default), the arithmetic mean of the values
     in 'x' is computed, as a numeric or complex vector of length one.
     If any argument is not logical (coerced to numeric), integer,
     numeric or complex, 'NA' is returned, with a warning.

     If 'trim' is non-zero, a symmetrically trimmed mean is computed
     with a fraction of 'trim' observations deleted from each end
     before the mean is computed.

References:

     Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S
     Language_. Wadsworth & Brooks/Cole.

See Also:

     'weighted.mean', 'mean.POSIXct'

Examples:

     x <- c(0:10, 50)
     xm <- mean(x)
     c(xm, mean(x, trim = 0.10))

     mean(USArrests, trim = 0.2)

Ajuda em Hipertexto: ''help.start''

Para os que preferem trabalhar com ajuda em hipertexto (html), há o comando help.start():

> help.start()
Making links in per-session dir ...
If 'sensible-browser' is already running, it is *not* restarted, and
    you must switch to its window.
Otherwise, be patient ...
> 

Após esta mensagem, um portal de ajuda em hipertexto será aberto no navegador de internet padrão do sistema. A partir dessa página inicial é possível fazer pesquisas por palavras-chave, consultar funções por pacote ou por ordem alfabética, obter textos introdutórios sobre a linguagem, e muito mais.


Pesquisa por Palavras-Chave na Ajuda

Outro comando muito útil é o apropos. Ele possibilita sabermos quais funções do R tem no nome uma certa palavra (string):

> apropos(plot)
 [1] "biplot"              "interaction.plot"    "lag.plot"           
 [4] "monthplot"           "plot.density"        "plot.ecdf"          
 [7] "plot.lm"             "plot.mlm"            "plot.spec"          
[10] "plot.spec.coherency" "plot.spec.phase"     "plot.stepfun"       
[13] "plot.ts"             "plot.TukeyHSD"       "preplot"            
[16] "qqplot"              "screeplot"           "termplot"           
[19] "ts.plot"             "assocplot"           "barplot"            
[22] "barplot.default"     "boxplot"             "boxplot.default"    
[25] "cdplot"              "coplot"              "fourfoldplot"       
[28] "matplot"             "mosaicplot"          "plot"               
[31] "plot.default"        "plot.design"         "plot.new"           
[34] "plot.window"         "plot.xy"             "spineplot"          
[37] "sunflowerplot"       "boxplot.stats"       ".__C__recordedplot" 

Para pesquisas mais complexas e refinadas há ainda a função help.search(). Por exemplo, para pesquisar funções que tenham a palavra “skew”no título:

> help.search(field="title","skew")

Help files with title matching 'skew' using regular expression
matching:



skewnormal1(VGAM)       Univariate Skew-Normal Distribution Family
                        Function
snorm(VGAM)             Skew-Normal Distribution
k3.linear(boot)         Linear Skewness Estimate



Type 'help(FOO, package = PKG)' to inspect entry 'FOO(PKG) TITLE'.

Busca de Exemplos e de Argumentos das Funções

Para obter apenas os exemplos que estão na ajuda de uma função, use a função example:

> example(mean)

mean> x <- c(0:10, 50)

mean> xm <- mean(x)

mean> c(xm, mean(x, trim = 0.1))
[1] 8.75 5.50

mean> mean(USArrests, trim = 0.2)
  Murder  Assault UrbanPop     Rape
    7.42   167.60    66.20    20.16

Muitas vezes precisamos apenas nos lembrar dos argumentos de uma função. Para isso, use a função args, que retorna os argumentos de uma função:

> args(chisq.test)
function (x, y = NULL, correct = TRUE, p = rep(1/length(x), length(x)),
    rescale.p = FALSE, simulate.p.value = FALSE, B = 2000)
NULL

Argumentos com valores atribuídos são os valores default da função. Por exemplo, por default a função de teste de Qui-quadrado estima a significância pela distribuição de Qui-quadrado e não por randomização (argumento simulate.p.value=FALSE).

Exercícios

<box left | Exercício 2.2. Use a Ajuda para Conhecer Argumentos das Funções >

  1. Execute o R, usando o diretório de trabalho criado no exercício anterior.
  2. Use a função load para carregar o arquivo bichos.RData no workspace.
  3. Consulte a ajuda da funções rm e ls para descobrir como apagar apenas os objetos cujos nomes começam com “temp”.

</box>

Particularidades dos Comandos no R

Como em toda linguagem, o R tem algumas regras básicas de sintaxe e grafia:

  1. O nome de comandos e objetos no R pode ser compostos de:
    • letras (minúsculas ou maiúsculas),
    • números, e
    • o ponto (.).
  2. Evite qualquer outro caracter especial, incluindo o espaço em branco.
  3. O nome não pode ser iniciado por um número.
  4. O R é sensível a caixa: o comando q é diferente do comando Q (que não existe!!!).

Para que um comando seja executado pelo R é necessário ser acompanhado de parênteses '()'. Compare esse comando

> q()
Save workspace image? [y/n/c]: c
> 

com o comando

> q
function (save = "default", status = 0, runLast = TRUE) 
.Internal(quit(save, status, runLast))
<environment: namespace:base>
> 

O comando sem os parênteses é na verdade o nome do comando. Sendo o R um software de código aberto, toda vez que se digita o nome de um comando, ele não executa o comando mas mostra o conteúdo do comando (o código).

1)
é possível também de executar um lote de comandos, mas neste wiki trabalharemos apenas com o modo interativo.
2)
o significado desse índice ficará claro na seção sobre indexação. Por enquanto basta saber que os resultados do R são precedidos por um indicador numérico entre colchetes
3)
acrônimo de “get working directory”
4)
este é um arquivo oculto, pois seu nome inicia-se com um ponto