Processing math: 100%

Linguagem de Programação S
Fundamentos e Aplicações em Recursos Florestais
5. Noções de Programação


Exercícios

5.1. Programação Orientada a Objetos


Exercício 5.1.A. Freqüência de Espécies

Considere o vetor com nome de espécies:
> sp
[1] "Myrcia sulfiflora"      "Syagrus romanzoffianus" "Tabebuia cassinoides"
[4] "Myrcia sulfiflora"
>

Para obter a freqüência das espécies podemos usar a função table:

> table( sp )
     Myrcia sulfiflora Syagrus romanzoffianus   Tabebuia cassinoides
                     2                      1                      1
> 

Qual a classe do objeto que a função table retorna? Quais são os seus attributos?

Exercício 5.1.B. Classe da Classe

Qual a classe do objeto produzido pelo comando class( x )?


5.2. Funções Simples


Exercício 5.2.A. Logaritmo na Base 2

Construa uma função que calcula automaticamente o logaritmo na base 2.

Exercício 5.2.B. Índices de Dispersão I

Existe uma série de índices de dispersão baseados em dados de contagem para verificar o padrão espacial de uma espécie.

Alguns deles são:

  • Razão Variância-Média: s2/¯x;
  • Coeficiente de Green: [(s2/¯x)1]/[xi1];
  • Índice de Morisita: n[x2ixi]/[(xi)2xi].

onde xi são dados de contagem de uma espécie por parcela.

Construa uma função para cada um desses índices, assumindo como argumento os valores de xi. Aplique aos dados de caixetais, verificando a dispersão da árvores de caixeta em cada caixetal.

Exercício 5.2.C. Gráfico de Whittaker

Faça uma função para construir o gráfico de diversidade de espécies de Whittaker: logaritmo da abundância contra a ordem (descrescente) da abundância das espécies. Construa essa função de forma que qualquer parâmetro gráfico possa ser alterado.

Exercício 5.2.D. Somatório do Primeiros Números Naturais

Construa uma função que calcula o somatório dos primeiros n números naturais.

Por exemplo se n=4 a função deve retornar o valor: 1+2+3+4.


5.3. Controle de Fluxo


Exercício 5.3.A. Loop para Demonstrar o TCL

Construa uma função para demonstrar o Teorema Central do Limite, gerando amostras da distribuição uniforme.

Exercício 5.3.B. Fatorial

Construa uma função para calcular o fatorial de um número natural: n!=n×(n1)×(n2)××2×1 5!=5×4×3×2×1


5.4. Vetorização


Exercício 5.4.A. Vetorizando o Desvio Padrão

Repita o exemplo de vetorização com a função dnorm utilizando a função sapply, mas mantenha a média constante e vetorize o desvio padrão (sd).


5.5. Exemplo de Algumas Funções


Exercício 5.5.A. Índices de Diversidade de Espécies

Construa funções para computar os seguintes índices de diversidade de espécies:
  • Índice de Shannon: H=Si=1piln(pi)
  • Índice de Simpson: D=Si=1(pi)2 onde pi é a proporção da espécie i.

Considere que os argumentos da sua função serão:

  • um vetor character com o nome das espécies para cada planta,
  • um vetor character que define o índice de diversidade: se Shannon ou se Simpson.

Exercício 5.5.B. Tabela de Fitossociologia

Construa uma função que gera uma tabela de fitossociologia. Utilize os dados de caixeta (caixeta-completo.csv) como teste.
Sua função é aplicável tanto para o conjunto de dados completo, como para cada valor da variável local?

Exercício 5.5.C. Verificando os Argumentos

Acrescente à sua função do exercício 10.5.A. acima (“Índices de Diversidade de Espécies”) o código necessário para que a função verifique se seus argumentos são de fato do tipo character.