Ferramentas do usuário

Ferramentas do site


biometria:r-tutor:02-funcoes

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

2. Funções no R e sua Aplicação

2.1 Algumas Funções Úteis

Iniciando e Finalizando o R

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

Já em ambiente UNIX (como o Linux, por exemplo), podemos iniciar o R a partir de um “terminal” evocando o comando R:

parsival@jatai $ R

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

R version 2.4.1 (2006-12-18)
Copyright (C) 2006 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[Previously saved workspace restored]

> 

Agora é só começar a digitar os comandos!!!

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.

Particularidades dos Comandos no R

O R é um sistema bastante particular para muitas pessoas. Alguns detalhes dos comandos e nomes que são usados no R devem ser aprendidos:

  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 aperto, toda vêz que se digita o nome de um comando, ele não executa o comando mas mostra o conteúdo do comando (o código).

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.

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 operadoçõ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:

  • tecla de espaço = um página para frente;
  • tecla “f” = uma página para frente;
  • tecla “b” = uma página para trás;
  • tecla enter = uma linha para frente;
  • tecla j = uma linha para frende;
  • tecla k = uma linha para trás;
  • tecla q = sai do modo help interativo e retorna à linha de comando.

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:

  • tecla n = próxima string, e
  • tecla N = string anterior.

Para os que preferem trabalhar com internet browser, 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 ...
> 

A partir desse comando, todo comando 'help' iniciará uma nova página no browser.

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" 

Aprenda esse Comando para Não Perder Seu Trabalho

Cada vez que você inicia o R, dizemos que se inicia uma sessão. A sessão iniciada está ligada à 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 acontecer do computador ser desligado durante uma sessão do R, tudo que foi fei será perdido!!! Para evitar isso, é interessante (de vez enquando) mandar o R gravar 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 savar em outro arquivo utilizando o argumento file:

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

Nesse caso, quando você iniciar uma nova sessão no R, para recuperar o trabalho da sessão anterior terá de usar o comando:

> load(file="minha-sessao-introdutoria.R")
>

2.2 O R como uma Potente Calculadora

Operações Aritméticas Básicas

A linha de comando do R funciona como uma potente calculadora. Todas operações aritméticas e funções matemáticas principais estão disponíveis. Exemplo:

 4 + 9
[1] 13
> 4 - 5
[1] -1
> 4 * 5
[1] 20
> 4 / 5
[1] 0.8
> 4^5
[1] 1024
>

A notação básica de operações algébricas, como a aplicação hierárquica dos parênteses, também pode ser utilizada:

> ( 4 + 5 ) * 7 - (35/16)^3
[1] 52.53247    
>
> ( 2 * ( 3 * (1 - 0.5) ) )
[1] 3
>  

Funções Matemáticas Comuns

As funções matemáticas comuns também estão disponíveis:

> sqrt(9)
[1] 3
> abs( - 1 )
[1] 1
> abs( 1 )
[1] 1
> log(10)
[1] 2.302585
> log(10, base=10)
[1] 1
> exp(2.3)
[1] 9.974182
> exp(-0.5)
[1] 0.6065307
> sin(0.5*pi)
[1] 1
> cos(2*pi)
[1] 1
> tan(pi)
[1] -1.224647e-16
> tan(pi/2)
[1] 1.633124e+16

Mantendo a Coerência Matemática

O R também lida com operações matemáticas que envolvem elementos infinitos e elementos indeterminados:

> 1/0
[1] Inf
> -5/0
[1] -Inf
> 500000000000000000/Inf
[1] 0
> 0/0
[1] NaN
> Inf/Inf
[1] NaN
> log(0)
[1] -Inf
> exp(-Inf)
[1] 0
> sqrt(Inf)
[1] Inf
> sqrt( - 1 )
[1] NaN
Warning message:
NaNs produced in: sqrt(-1)
> 2 * NA
[1] NA
> 2 * NaN
[1] NaN
> NA / 10
[1] NA
> NaN / -1
[1] NaN
>

Note que determinadas palavras (além do nome das funções) estão reservadas no R, pois são utilizadas com significado especial:

  • pi - constante pi;
  • Inf - infinito;
  • NaN - indeterminado, normalmente resultado de uma operação matemática indeterminada;
  • NA - indeterminado (Not Avaiable), normalmente caracterizando uma observação perdida.

Criando Variáveis

Mais do que simples operações aritméticas, o R permite que executemos operações algébricas operando sobre variáveis prédefinidas.

Para definir uma variável, basta escolher um nome (lembre-se das regras de nomes no R) e atribuir a ela um valor:

>
> a = 3.6
> b = sqrt( 35 )
> c = -2.1
> a
[1] 3.6
> b
[1] 5.91608
> c
[1] -2.1
>
> a * b / c
[1] -10.14185
> b^c
[1] 0.02391820
> a + exp(c) - log(b)
[1] 1.944782
>  
> a - b * c / d
Error: object "d" not found
>          

Não esqueça de definir as variáveis previamente!!

2.3 R como uma Calculadora Vetorial

As operações de cálculos matemáticos e estatísticos no R podem ser executadas num único número ou numa série de números

Para podermos montar uma série de números utilizamos a função c() (concatenate):

> d = c(3.5, 2.1, -1, -4.5, sqrt(4.4), exp(-0.25), 3/4*pi)
> d
[1]  3.5000000  2.1000000 -1.0000000 -4.5000000  2.0976177  0.7788008  2.3561945
> 
> e1 = 1:7
> e1
[1] 1 2 3 4 5 6 7
> e2 = 10:27
> e2
 [1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
> 

Note que os argumentos da função c() são separados por vírgulas e o símbolo de decimal é o ponto.

Da mesma forma que operamos sobre números podemos operar sobre a série de números o vetores:

> 2*d
[1]  7.000000  4.200000 -2.000000 -9.000000  4.195235  1.557602  4.712389
> d / 3
[1]  1.1666667  0.7000000 -0.3333333 -1.5000000  0.6992059  0.2596003  0.7853982
> d + e1
[1]  4.500000  4.100000  2.000000 -0.500000  7.097618  6.778801  9.356194
> e1^d
[1]  1.000000000  4.287093850  0.333333333  0.001953125 29.253096938
[6]  4.036684464 97.997578738
> log(e1)
[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101
> exp(d)
[1] 33.11545196  8.16616991  0.36787944  0.01110900  8.14673877  2.17885778
[7] 10.55072407
> sqrt(e1)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751
> sqrt(d)
[1] 1.8708287 1.4491377       NaN       NaN 1.4483155 0.8824969 1.5349901
Warning message:
NaNs produced in: sqrt(d)
>

É necessário prestar atenção às operações matemáticas apropriadas.

Também é necessário prestar atenção ao comprimento (length) dos vetores:

> d - e2
 [1]  -6.50000  -8.90000 -13.00000 -17.50000 -11.90238 -14.22120 -13.64381
 [8] -13.50000 -15.90000 -20.00000 -24.50000 -18.90238 -21.22120 -20.64381
[15] -20.50000 -22.90000 -27.00000 -31.50000
Warning message:
longer object length
        is not a multiple of shorter object length in: d - e2
>

<csv biometria:r-tutor:dap-sapucaia.csv></csv>

biometria/r-tutor/02-funcoes.txt · Última modificação: 2022/11/24 14:21 por 127.0.0.1