7 R Modulo 4-1
Estrutura da Comunidade
RESUMO
Na ecologia de comunidades, a diversidade de espécies é uma medida importante para entender a complexidade e a estrutura de uma comunidade de organismos. Vamos explorar algumas das métricas comuns usadas para avaliar a diversidade de espécies.
Apresentação
Na ecologia de comunidades, a diversidade de espécies é uma medida importante para entender a complexidade e a estrutura de uma comunidade de organismos. Vamos explorar algumas das métricas comuns usadas para avaliar a diversidade de espécies. Essas métricas são usadas para avaliar a diversidade e a estrutura de comunidades ecológicas. Elas podem fornecer informações importantes sobre como as diferentes espécies interagem em um ecossistema e como a diversidade de espécies pode ser afetada por mudanças ambientais ou distúrbios (Magurran 1988).
7.1 Sobre os dados
Usaremos para esse tutorial dois conjuntos de dados. A Matriz comunitária (ppbio06c-peixes.xlsx) de dados coletados no Programa de Pesquisa em Biodiversidade - PPBio (Veja Programa de Pesquisa em Biodiversidade – PPBio). Esses são dados de espécies de peixes distribuidas em diversas unidades amostrais (UA’s ou sítios). Essa é a matriz bruta de dados, porque os valores ainda não foram ajustados para os valores de Captura Por Unidade de Esforço (CPUE), nem foram relativizados ou transformados.
Além disso usaremos a tabela de agrupamentos (ppbio06-grupos)
Revise as informações sobre as bases de dados no Capítulo 4. A matriz de dados para esse Módulo pode ser baixada na Seção 4.2.
7.2 Organização básica
dev.off() #apaga os graficos, se houver algum
rm(list=ls(all=TRUE)) #limpa a memória
cat("\014") #limpa o console
Instalando os pacotes necessários para esse módulo.
install.packages("vegan")
install.packages("moments")
install.packages("ggplot2")
install.packages("dplyr")
install.packages("tidyr")
install.packages("tibble")
install.packages("tidyverse") #atente para alguma msg de erro qdo executar essa linha
install.packages("forcats")
install.packages("iNEXT")
install.packages("openxlsx")
install.packages("gt")
Depois de instalados, carregue os pacotes a seguir no seu computador.
library(tibble); library(tidyverse); library(forcats); library(openxlsx); library(Rcpp)
Os códigos acima, são usados para instalar e carregar os pacotes necessários para este módulo. Esses códigos são comandos para instalar pacotes no R. Um pacote é uma coleção de funções, dados e documentação que ampliam as capacidades do R (R CRAN, (R. C. Team 2017)) e RStudio (R. S. Team 2022)). No exemplo acima, o pacote openxlsx
permite ler e escrever arquivos Excel no R. Para instalar um pacote no R, você precisa usar a função install.packages()
.
Depois de instalar um pacote, você precisa carregá-lo na sua sessão R com a função library()
. Por exemplo, para carregar o pacote openxlsx
, você precisa executar a função library(openxlsx)
. Isso irá permitir que você use as funções do pacote na sua sessão R. Você precisa carregar um pacote toda vez que iniciar uma nova sessão R e quiser usar um pacote instalado.
Agora vamos definir o diretório de trabalho. Esse código é usado para obter e definir o diretório de trabalho atual no R. O comando getwd()
retorna o caminho do diretório onde o R está lendo e salvando arquivos. O comando setwd()
muda esse diretório de trabalho para o caminho especificado entre aspas. No seu caso, você deve ajustar o caminho para o seu próprio diretório de trabalho. Lembre de usar a barra “/” entre os diretórios. E não a contra-barra “\”.
getwd()
setwd("C:/Seu/Diretório/De/Trabalho")
7.3 Importando a planilha
Note que o símbolo #
em programação R significa que o texto que vem depois dele é um comentário e não será executado pelo programa. Isso é útil para explicar o código ou deixar anotações.
- Ajuste a primeira linha do código abaixo para refletir “C:/Seu/Diretório/De/Trabalho/Planilha.xlsx”.
- Ajuste o parâmetro sheet = "Sheet1"
para refletir a aba correta do arquivo .xlsx a ser importado.
#dir <- getwd() #criamos um vetor com o diretório de trbalho
#shell.exec(dir) #abre o diretorio de trabalho no Windows Explorer
<- read.xlsx("D:/Elvio/OneDrive/Disciplinas/_EcoNumerica/5.Matrizes/ppbio06-peixes.xlsx",
ppbio rowNames = T, colNames = T,
sheet = "Sheet1")
str(ppbio)
#View(ppbio)
1:5,1:5] #[1:5,1:5] mostra apenas as linhas e colunas de 1 a 5. ppbio[
## 'data.frame': 26 obs. of 35 variables:
## $ ap-davis : num 0 0 0 0 0 0 0 0 0 0 ...
## $ as-bimac : num 1 99 194 19 23 142 5 46 206 16 ...
## $ as-fasci : num 0 0 55 0 1 3 1 0 64 0 ...
## $ ch-bimac : num 0 0 0 0 13 3 0 178 0 0 ...
## $ ci-ocela : num 0 0 0 0 0 0 40 0 0 13 ...
## $ ci-orien : num 0 0 5 0 0 69 9 0 25 24 ...
## $ co-macro : num 0 0 0 0 0 0 0 0 0 0 ...
## $ co-heter : num 0 0 1 0 0 0 0 0 0 0 ...
## $ cr-menez : num 0 0 14 0 0 4 0 0 8 0 ...
## $ cu-lepid : num 0 0 0 0 0 0 0 0 0 0 ...
## $ cy-gilbe : num 0 0 0 0 0 0 0 0 0 0 ...
## $ ge-brasi : num 0 0 3 0 0 0 0 0 1 0 ...
## $ he-margi : num 0 0 0 0 0 1 0 0 0 0 ...
## $ ho-malab : num 0 0 1 5 0 17 10 2 31 4 ...
## $ hy-pusar : num 0 0 9 2 0 43 2 0 11 0 ...
## $ le-melan : num 0 0 0 0 0 0 0 0 0 0 ...
## $ le-piau : num 0 0 3 0 0 1 3 0 2 1 ...
## $ le-taeni : num 0 0 0 0 0 0 0 0 0 0 ...
## $ mo-costa : num 0 0 0 0 0 0 0 0 0 0 ...
## $ mo-lepid : num 0 1 39 0 0 1 0 0 0 0 ...
## $ or-nilot : num 0 2 36 0 0 77 0 0 138 0 ...
## $ pa-manag : num 0 0 0 0 0 0 0 0 0 0 ...
## $ pimel-sp : num 0 0 6 0 0 0 0 0 0 0 ...
## $ po-retic : num 0 0 0 0 0 20 0 0 5 0 ...
## $ po-vivip : num 0 0 47 15 0 221 32 0 326 10 ...
## $ pr-brevi : num 9 0 5 0 1 15 5 2 164 0 ...
## $ ps-rhomb : num 0 0 0 0 0 0 0 0 1 0 ...
## $ ps-genise: num 0 0 0 0 0 0 0 0 1 0 ...
## $ se-heter : num 0 0 40 14 4 60 0 0 38 0 ...
## $ se-piaba : num 0 0 68 0 0 0 0 0 0 0 ...
## $ se-spilo : num 0 0 0 0 0 0 0 0 1 0 ...
## $ st-noton : num 0 0 1 0 0 25 0 0 115 0 ...
## $ sy-marmo : num 0 0 0 0 0 0 1 0 0 0 ...
## $ te-chalc : num 0 0 0 0 0 0 0 0 0 0 ...
## $ tr-signa : num 0 0 18 0 0 15 0 0 7 0 ...
## ap-davis as-bimac as-fasci ch-bimac ci-ocela
## S-A-ZA1 0 1 0 0 0
## S-R-CC1 0 99 0 0 0
## S-R-CT1 0 194 55 0 0
## S-R-CP1 0 19 0 0 0
## S-A-TA1 0 23 1 13 0
Exibindo os dados importados (esses comando são “case-sensitive” ignore.case(object)
).
#View(ppbio)
print(ppbio[1:8,1:8])
1:10,1:10]
ppbio[str(ppbio)
mode(ppbio)
class(ppbio)
7.4 Reset point
<- ppbio
m_trab #pat <- "^S"
#m_trab <- m_trab[!grepl(pat, rownames(m_trab)), ] #exclui quem começa com pat
Aqui cria-se um novo objeto do R (m_trab
, ou a matriz de trabalho, para esse momento) que substitui a matriz de dados original, por uma nova matriz que pode ser a matriz relativizada, transformada, transposta, etc. Dessa forma, mantemos a matriz de dados original caso precisemos dela novamente (Veja a Tabela 4.1).
Revise Seção 4.2.2 e a Tabela de Abreviações (@ref(tab:200m_2)) na mesma Seção que resumem os tipos de matrizes e suas abreviações, para os nossos códigos.
7.5 Transpor a matriz para trabalhar com as espécies
Vamos transpor a matriz para trabalharmos com as espécies. A função t
transpõe a matriz. Só deve ser usada uma vez, pois se repetida com Ctrl+Enter
continua “girando” a matriz. As espécies como colunas representam uma matriz comunitária e as espécies como linhas representam uma matriz (comunitária) transposta.
<- t(ppbio)
m_trab str(m_trab)
#View(m_trab)
m_trabprint(m_trab[1:5,1:5])
1:5,1:5]
m_trab[str(m_trab)
mode(m_trab)
class(m_trab)
## num [1:35, 1:26] 0 1 0 0 0 0 0 0 0 0 ...
## - attr(*, "dimnames")=List of 2
## ..$ : chr [1:35] "ap-davis" "as-bimac" "as-fasci" "ch-bimac" ...
## ..$ : chr [1:26] "S-A-ZA1" "S-R-CC1" "S-R-CT1" "S-R-CP1" ...
## S-A-ZA1 S-R-CC1 S-R-CT1 S-R-CP1 S-A-TA1 S-R-CT2 S-R-CP2 S-A-TA2 S-R-CT3 S-R-CP3 S-A-TA3 S-R-CT4 S-R-CP4
## ap-davis 0 0 0 0 0 0 0 0 0 0 0 0 0
## as-bimac 1 99 194 19 23 142 5 46 206 16 234 0 0
## as-fasci 0 0 55 0 1 3 1 0 64 0 7 1 0
## ch-bimac 0 0 0 0 13 3 0 178 0 0 238 0 0
## ci-ocela 0 0 0 0 0 0 40 0 0 13 0 0 11
## ci-orien 0 0 5 0 0 69 9 0 25 24 0 5 6
## co-macro 0 0 0 0 0 0 0 0 0 0 2 0 0
## co-heter 0 0 1 0 0 0 0 0 0 0 0 0 0
## cr-menez 0 0 14 0 0 4 0 0 8 0 0 1 0
## cu-lepid 0 0 0 0 0 0 0 0 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 0 0 0 0 0 0 50 0
## ge-brasi 0 0 3 0 0 0 0 0 1 0 0 3 0
## he-margi 0 0 0 0 0 1 0 0 0 0 0 1 0
## ho-malab 0 0 1 5 0 17 10 2 31 4 20 4 2
## hy-pusar 0 0 9 2 0 43 2 0 11 0 0 3 0
## le-melan 0 0 0 0 0 0 0 0 0 0 0 0 0
## le-piau 0 0 3 0 0 1 3 0 2 1 0 0 2
## le-taeni 0 0 0 0 0 0 0 0 0 0 0 0 0
## mo-costa 0 0 0 0 0 0 0 0 0 0 0 0 0
## mo-lepid 0 1 39 0 0 1 0 0 0 0 0 0 0
## or-nilot 0 2 36 0 0 77 0 0 138 0 0 73 0
## pa-manag 0 0 0 0 0 0 0 0 0 0 0 0 0
## pimel-sp 0 0 6 0 0 0 0 0 0 0 0 0 0
## po-retic 0 0 0 0 0 20 0 0 5 0 0 0 0
## po-vivip 0 0 47 15 0 221 32 0 326 10 0 28 80
## pr-brevi 9 0 5 0 1 15 5 2 164 0 0 59 0
## ps-rhomb 0 0 0 0 0 0 0 0 1 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0 1 0 0 0 0
## se-heter 0 0 40 14 4 60 0 0 38 0 0 3 3
## se-piaba 0 0 68 0 0 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 1 0 0 0 0
## st-noton 0 0 1 0 0 25 0 0 115 0 0 64 0
## sy-marmo 0 0 0 0 0 0 1 0 0 0 0 0 0
## te-chalc 0 0 0 0 0 0 0 0 0 0 0 0 0
## tr-signa 0 0 18 0 0 15 0 0 7 0 0 141 0
## S-A-TA4 B-A-MU1 B-R-ET1 B-A-GU1 B-R-PC2 B-A-MU2 B-A-GU2 B-R-PC3 B-A-MU3 B-A-GU3 B-R-PC4 B-A-MU4 B-A-GU4
## ap-davis 0 0 0 0 5 0 0 22 0 0 0 0 0
## as-bimac 394 12 3 2 44 99 0 75 511 6 7 235 13
## as-fasci 0 0 0 2 0 0 0 7 0 0 17 0 0
## ch-bimac 273 0 0 0 0 0 0 0 0 0 0 0 0
## ci-ocela 0 0 0 0 2 0 0 4 0 0 0 0 0
## ci-orien 0 0 0 0 0 0 0 0 0 0 0 0 0
## co-macro 0 0 0 0 0 0 0 0 0 0 0 0 0
## co-heter 0 0 0 0 0 0 0 0 0 0 0 0 0
## cr-menez 1 0 0 0 0 0 0 0 0 0 0 0 0
## cu-lepid 0 0 0 0 0 0 0 21 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 0 0 0 0 0 81 0 0
## ge-brasi 1 190 0 7 8 67 23 16 145 32 5 509 10
## he-margi 0 0 0 0 0 0 0 0 0 0 0 0 0
## ho-malab 9 0 0 0 0 1 0 2 0 0 1 0 0
## hy-pusar 0 0 0 0 0 0 0 1 0 0 0 0 0
## le-melan 0 0 0 0 2 0 0 0 0 0 0 0 0
## le-piau 2 0 0 0 0 0 0 0 0 0 1 0 0
## le-taeni 0 0 0 0 1 0 0 0 0 0 0 0 0
## mo-costa 0 0 0 0 0 0 0 1 0 0 0 0 0
## mo-lepid 0 0 0 0 0 0 0 0 0 0 0 0 0
## or-nilot 1 6 8 3 5 1 36 65 11 247 9 1 129
## pa-manag 0 0 1 11 0 0 102 0 0 250 0 0 190
## pimel-sp 0 0 0 0 0 0 0 0 0 0 0 0 0
## po-retic 0 0 34 0 0 10 0 0 46 0 0 266 0
## po-vivip 0 0 0 0 0 8 0 0 48 0 0 163 0
## pr-brevi 3 0 0 0 9 0 0 6 1 0 0 0 0
## ps-rhomb 0 0 0 0 0 0 0 0 0 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0 0 0 0 0 0
## se-heter 0 0 0 0 10 0 0 93 0 0 31 0 0
## se-piaba 0 0 0 0 0 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 0 0 0 0 0
## st-noton 0 0 0 0 0 0 0 0 0 0 0 0 0
## sy-marmo 0 0 0 0 0 0 0 0 0 0 0 0 0
## te-chalc 0 0 0 0 76 0 0 58 0 0 0 0 0
## tr-signa 0 0 0 0 23 0 0 0 0 0 4 0 0
## S-A-ZA1 S-R-CC1 S-R-CT1 S-R-CP1 S-A-TA1
## ap-davis 0 0 0 0 0
## as-bimac 1 99 194 19 23
## as-fasci 0 0 55 0 1
## ch-bimac 0 0 0 0 13
## ci-ocela 0 0 0 0 0
## S-A-ZA1 S-R-CC1 S-R-CT1 S-R-CP1 S-A-TA1
## ap-davis 0 0 0 0 0
## as-bimac 1 99 194 19 23
## as-fasci 0 0 55 0 1
## ch-bimac 0 0 0 0 13
## ci-ocela 0 0 0 0 0
## num [1:35, 1:26] 0 1 0 0 0 0 0 0 0 0 ...
## - attr(*, "dimnames")=List of 2
## ..$ : chr [1:35] "ap-davis" "as-bimac" "as-fasci" "ch-bimac" ...
## ..$ : chr [1:26] "S-A-ZA1" "S-R-CC1" "S-R-CT1" "S-R-CP1" ...
## [1] "numeric"
## [1] "matrix" "array"
7.5.1 Informações básicas da matriz
Agora podemos pedir ao R as informações básicas da matriz de trabalho (m_trab
), como o número de observações ou tamanho do vetor (depende do tipo da matriz), número de observações igual a zero, número de observaçõoes maiores que zero e proporção de zeros na matriz.
range(m_trab) #menor e maior valores
length(m_trab) #no. de colunas
ncol(m_trab) #no. de N colunas
nrow(m_trab) #no. de M linhas
sum(lengths(m_trab)) #soma os nos. de colunas
length(as.matrix(m_trab)) #tamanho da matriz m x n
sum(m_trab == 0) #número de observações igual a zero
sum(m_trab > 0) #número de observações maiores que zero
#calculando a proporção de zeros na matriz
<- (sum(m_trab == 0)/length(as.matrix(m_trab)))*100
zeros zeros
## [1] 0 511
## [1] 910
## [1] 26
## [1] 35
## [1] 910
## [1] 910
## [1] 716
## [1] 194
## [1] 78.68132
Tabela que resume as informações geradas (Tabela 7.1).
## Função Resultado
## 1 range 0 - 511
## 2 lenght 910
## 3 n cols 26
## 4 m linhas 35
## 5 Tamanho 910
## 6 Tamanho 910
## 7 Zeros 716
## 8 Nao zeros 194
## 9 % Zeros 78.7
Função | Resultado |
---|---|
range | 0 - 511 |
lenght | 910 |
n cols | 26 |
m linhas | 35 |
Tamanho | 910 |
Tamanho | 910 |
Zeros | 716 |
Nao zeros | 194 |
% Zeros | 78.7 |
Ou seja, temos uma matriz de tamanho m x n
igual a 35 objetos por 26 atributos, onde 78.68% dos valores da matriz são iguais a zero!
Agora de conhecimento dessas informações básicas podemos calcular os primeiros descritores da estrutura da comunidade a ser estudada.
7.6 Calculando os descritores da comunidade
Entre outras métricas, calcularemos os seguntes índices:
- Riqueza de Espécies:
- A riqueza de espécies simplesmente se refere ao número total de espécies diferentes em uma comunidade. É uma medida fundamental da diversidade ecológica e reflete a variedade de formas de vida coexistentes em um ecossistema. Comunidades com alta riqueza de espécies têm um grande número de espécies diferentes, enquanto comunidades com baixa riqueza têm menos espécies.
- Índice de Diversidade de Simpson:
- O índice de diversidade de Simpson (ou índice de Simpson) mede a probabilidade de escolher aleatoriamente duas vezes o mesmo indivíduo de uma comunidade. Quanto mais próximo de 1 for o índice de Simpson, menor é a diversidade, indicando que uma ou algumas espécies dominam a comunidade. Quanto mais próximo de 0 for o índice de Simpson, maior é a diversidade, indicando uma comunidade mais equilibrada.
- Índice de Diversidade de Shannon-Wiener:
- O índice de Shannon-Wiener (ou índice de Shannon) leva em consideração a riqueza de espécies e a equitabilidade (distribuição uniforme das abundâncias das espécies). Ele mede a incerteza associada à identificação de uma espécie aleatória em uma comunidade. Quanto maior o índice de Shannon, maior é a diversidade, pois indica uma comunidade com várias espécies bem distribuídas em termos de abundância.
- Equitabilidade:
- A equitabilidade é uma medida que avalia o quão uniformemente as abundâncias das diferentes espécies estão distribuídas em uma comunidade. Quanto maior a equitabilidade, mais igual é a distribuição das abundâncias, o que indica uma comunidade mais equilibrada.
- Abundância:
- A abundância se refere ao número total de indivíduos de uma espécie em uma comunidade. É uma medida simples que indica quantos indivíduos de uma espécie específica estão presentes na comunidade.
- Abundância Relativa:
- A abundância relativa é a proporção ou a fração da abundância de uma espécie em relação à abundância total de todas as espécies na comunidade. É uma medida que ajuda a entender a importância relativa de cada espécie na comunidade.
- Dominância de Espécies:
- A dominância de espécies se refere à presença de uma ou algumas espécies que têm uma abundância significativamente maior do que as outras na comunidade. Comunidades com alta dominância são frequentemente menos diversas, pois algumas espécies dominantes podem suprimir o crescimento de outras.
7.6.1 Variabilidade
Primeiro a variabilidade estatística
#?apply
<- rowSums(m_trab)
Sum #ou
<- apply(m_trab,1,sum)
Sum
Sum## Abundância relativa (%)
<- (Sum / sum(Sum)) * 100 # percentage
RA ## Media
<- rowMeans(m_trab)
Mean
Mean## Ou
<- apply(m_trab,1,mean)
Mean
Mean## Desvio padrão
<- apply(m_trab,1,sd)
DP
DP## Máximo
<- apply(m_trab,1,max)
Max
Max ## Mínimo
<- apply(m_trab,1,min)
Min
Min## Mínimo não-zero
<- apply(m_trab, 1, function(row) {
MinZ <- row[row > 0] # Filter out zero values
non_zero_values if (length(non_zero_values) == 0) {
return(0) # If all values are zero, return 0
else {
} return(min(non_zero_values)) # Return the minimum of non-zero values
}
}) MinZ
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 27 2386 158 705 70 143 2 1 28 21 131
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 1020 2 109 71 2 15 1 1 41 848 554
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 6 381 978 279 1 1 296 68 1 205 1
## te-chalc tr-signa
## 134 208
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez
## 1.03846154 91.76923077 6.07692308 27.11538462 2.69230769 5.50000000 0.07692308 0.03846154 1.07692308
## cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni
## 0.80769231 5.03846154 39.23076923 0.07692308 4.19230769 2.73076923 0.07692308 0.57692308 0.03846154
## mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb
## 0.03846154 1.57692308 32.61538462 21.30769231 0.23076923 14.65384615 37.61538462 10.73076923 0.03846154
## ps-genise se-heter se-piaba se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.03846154 11.38461538 2.61538462 0.03846154 7.88461538 0.03846154 5.15384615 8.00000000
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez
## 1.03846154 91.76923077 6.07692308 27.11538462 2.69230769 5.50000000 0.07692308 0.03846154 1.07692308
## cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni
## 0.80769231 5.03846154 39.23076923 0.07692308 4.19230769 2.73076923 0.07692308 0.57692308 0.03846154
## mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb
## 0.03846154 1.57692308 32.61538462 21.30769231 0.23076923 14.65384615 37.61538462 10.73076923 0.03846154
## ps-genise se-heter se-piaba se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.03846154 11.38461538 2.61538462 0.03846154 7.88461538 0.03846154 5.15384615 8.00000000
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez
## 4.3861671 132.4348316 16.2035134 75.8732242 8.2982853 14.6184815 0.3922323 0.1961161 3.1486261
## cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni
## 4.1184388 18.3313519 106.3478473 0.2717465 7.6053625 8.6605205 0.3922323 0.9868364 0.1961161
## mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb
## 0.1961161 7.6376597 59.1452970 62.3928004 1.1766968 52.5242362 79.5004790 33.3892889 0.1961161
## ps-genise se-heter se-piaba se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.1961161 22.9905666 13.3358972 0.1961161 25.5582893 0.1961161 18.3841068 27.8280434
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 22 511 64 273 40 69 2 1 14 21 81
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 509 1 31 43 2 3 1 1 39 247 250
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 6 266 326 164 1 1 93 68 1 115 1
## te-chalc tr-signa
## 76 141
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 0 0 0 0 0 0 0 0 0 0 0
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 0 0 0 0 0 0 0 0 0 0 0
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 0 0 0 0 0 0 0 0 0 0 0
## te-chalc tr-signa
## 0 0
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 5 1 1 3 2 5 2 1 1 21 50
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 1 1 1 1 2 1 1 1 1 1 1
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 6 5 8 1 1 1 3 68 1 1 1
## te-chalc tr-signa
## 58 4
7.6.2 Riqueza
Atente para o fato de que a riqueza será a frequêcia de ocorrência na matrix transposta. Converte-se primeiro para matriz binária.
<- m_trab
m_pa != 0] <- 1
m_pa[m_pa rowSums(m_pa)
library(vegan)
<- decostand(m_trab,"pa")
bin 1:10, 1:10]
bin[<- apply(bin,1,sum)
S
S#OU
<- specnumber(m_trab)
Riqueza
Riqueza<- specnumber(colSums(m_trab))
Riqueza_total
Riqueza_total#OU
<- rowSums(m_trab > 0) / ncol(m_trab) * 100
FO FO
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 2 23 10 5 5 7 1 1 5 1 2
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 15 2 14 7 1 8 1 1 3 18 5
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 1 6 11 12 1 1 10 1 1 4 1
## te-chalc tr-signa
## 2 6
## S-A-ZA1 S-R-CC1 S-R-CT1 S-R-CP1 S-A-TA1 S-R-CT2 S-R-CP2 S-A-TA2 S-R-CT3 S-R-CP3
## ap-davis 0 0 0 0 0 0 0 0 0 0
## as-bimac 1 1 1 1 1 1 1 1 1 1
## as-fasci 0 0 1 0 1 1 1 0 1 0
## ch-bimac 0 0 0 0 1 1 0 1 0 0
## ci-ocela 0 0 0 0 0 0 1 0 0 1
## ci-orien 0 0 1 0 0 1 1 0 1 1
## co-macro 0 0 0 0 0 0 0 0 0 0
## co-heter 0 0 1 0 0 0 0 0 0 0
## cr-menez 0 0 1 0 0 1 0 0 1 0
## cu-lepid 0 0 0 0 0 0 0 0 0 0
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 2 23 10 5 5 7 1 1 5 1 2
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 15 2 14 7 1 8 1 1 3 18 5
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 1 6 11 12 1 1 10 1 1 4 1
## te-chalc tr-signa
## 2 6
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 2 23 10 5 5 7 1 1 5 1 2
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 15 2 14 7 1 8 1 1 3 18 5
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 1 6 11 12 1 1 10 1 1 4 1
## te-chalc tr-signa
## 2 6
## [1] 26
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 7.692308 88.461538 38.461538 19.230769 19.230769 26.923077 3.846154 3.846154 19.230769 3.846154 7.692308
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 57.692308 7.692308 53.846154 26.923077 3.846154 30.769231 3.846154 3.846154 11.538462 69.230769 19.230769
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 3.846154 23.076923 42.307692 46.153846 3.846154 3.846154 38.461538 3.846154 3.846154 15.384615 3.846154
## te-chalc tr-signa
## 7.692308 23.076923
7.7 Índices de Diversidade
7.7.1 Shannon
O índice de diversidade de Shannon ou Shannon–Weaver (or Shannon–Wiener) é uma medida de diversidade que leva em consideração tanto a riqueza de espécies quanto a uniformidade na distribuição dessas espécies (Dixon 2003; Oksanen et al. 2020). Este índice é definido por:
\[ H' = -\sum_{i} p_i\log_{b} p_i \] Onde:
- \(H'\) é a entropia de Shannon.
- \(p_i\) é a abundância proporcional da espécie \(i\).
- \(b\) é a base do logaritmo.
É mais comum usar-se o logarítmo natural, embora pode-se argumentar que para o logarítmo de base = 2 (o que faz sentido mas nenhuma diferença)
Outra fórmula para calcular o índice de diversidade de Shannon é:
\[ H' = -\sum_{i=1}^{S} \left( \frac{n_i}{N} \times \ln\frac{n_i}{N} \right) \]
Onde:
- \(H'\) é a entropia de Shannon (ou a diversidade de Shannon).
- \(n_i\) é o número de indivíduos da espécie \(i\).
- \(N\) é o número total de indivíduos na comunidade.
- \(S\) é o número total de espécies na comunidade.
Esta fórmula mede a incerteza (ou entropia) na identificação de uma espécie selecionada aleatoriamente da comunidade. Quanto maior o valor de \(H'\), maior a diversidade da comunidade.
<- diversity(m_trab, index = "shannon")
H H
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 0.4791656 2.4239775 1.4761308 1.1783625 1.1883832 1.4976803 0.0000000 0.0000000 1.2205076 0.0000000 0.6648803
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 1.5668772 0.6931472 2.1167591 1.2492728 0.0000000 1.9913464 0.0000000 0.0000000 0.2287207 2.1072815 1.1268689
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 0.0000000 1.0288585 1.8633952 1.3708151 0.0000000 0.0000000 1.8675926 0.0000000 0.0000000 0.9702899 0.0000000
## te-chalc tr-signa
## 0.6840978 1.0985693
7.7.2 Simpson
O índice de diversidade de Simpson é uma medida de diversidade que leva em consideração a riqueza de espécies e a abundância relativa de cada espécie em uma comunidade. A fórmula para calcular o índice de diversidade de Simpson é:
\[ D = 1 - \sum_{i=1}^{S} \left( \frac{n_i (n_i - 1)}{N (N - 1)} \right) \]
Onde:
- \(D\) é o índice de diversidade de Simpson.
- \(n_i\) é o número de indivíduos da espécie \(i\).
- \(N\) é o número total de indivíduos na comunidade.
- \(S\) é o número total de espécies na comunidade.
Esta fórmula fornece um valor entre 0 e 1, onde 0 indica uma comunidade com apenas uma espécie presente e 1 indica uma comunidade com uma distribuição uniforme de espécies.
Existem duas variantes do índice de Simpson baseado em \(D = \sum p_i^2\) (Dixon 2003; Oksanen et al. 2020; Hurlbert 1971):
- Ao escolhermos
simpson
o R retorna \(1 - D\), e - ao escolhermos
invsimpson
o R retorna \(1/D\) .
<- diversity(m_trab, "simpson")
D
Dis.na(D)] <- 0 #substitui NA ou NaN por 0
D[ D
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid
## 0.30178326 0.88451845 0.69860599 0.67197827 0.61020408 0.70027874 0.00000000 0.00000000 0.64540816 0.00000000
## cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid
## 0.47200047 0.68977124 0.50000000 0.83982830 0.58956556 0.00000000 0.85333333 0.00000000 0.00000000 0.09399167
## or-nilot pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba
## 0.83992302 0.64444343 0.00000000 0.48641164 0.79634160 0.60348659 0.00000000 0.00000000 0.81071950 0.00000000
## se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.00000000 0.57294468 0.00000000 0.49097795 0.51405325
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid
## 0.30178326 0.88451845 0.69860599 0.67197827 0.61020408 0.70027874 0.00000000 0.00000000 0.64540816 0.00000000
## cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid
## 0.47200047 0.68977124 0.50000000 0.83982830 0.58956556 0.00000000 0.85333333 0.00000000 0.00000000 0.09399167
## or-nilot pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba
## 0.83992302 0.64444343 0.00000000 0.48641164 0.79634160 0.60348659 0.00000000 0.00000000 0.81071950 0.00000000
## se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.00000000 0.57294468 0.00000000 0.49097795 0.51405325
7.7.3 Equitabilidade de Pielou
O índice de equitabilidade de Pielou é uma medida de uniformidade em uma distribuição de espécies (Pielou 1975). Sua fórmula é dada por:
\[ J' = \frac{H'}{\ln(S)} \]
Onde:
- \(J'\) é o índice de equitabilidade de Pielou.
- \(H'\) é a entropia de Shannon (ou a diversidade de Shannon), que é calculada como \(-\sum_{i=1}^{S} p_i \cdot \ln(p_i)\), onde \(S\) é o número total de espécies e \(p_i\) é a proporção da espécie \(i\).
- \(\ln(S)\) é o logarítmo natural do número total de espécies na comunidade.
Esta fórmula fornece um valor entre 0 e 1, onde 0 indica uma distribuição completamente desigual onde uma comunidade apresenta uma única espécie dominante e 1 indica uma distribuição completamente equitativa onde todas as espécies têm a mesma abundância.
<- H/log(specnumber(m_trab))
E
Eis.na(E)] <- 0 #substitui NA ou NaN por 0
E[ E
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 0.6912899 0.7730767 0.6410755 0.7321578 0.7383840 0.7696554 NaN NaN 0.7583440 NaN 0.9592195
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 0.5785997 1.0000000 0.8020891 0.6419992 NaN 0.9576352 NaN NaN 0.2081906 0.7290694 0.7001630
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## NaN 0.5742169 0.7770962 0.5516566 NaN NaN 0.8110852 NaN NaN 0.6999162 NaN
## te-chalc tr-signa
## 0.9869445 0.6131232
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 0.6912899 0.7730767 0.6410755 0.7321578 0.7383840 0.7696554 0.0000000 0.0000000 0.7583440 0.0000000 0.9592195
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 0.5785997 1.0000000 0.8020891 0.6419992 0.0000000 0.9576352 0.0000000 0.0000000 0.2081906 0.7290694 0.7001630
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 0.0000000 0.5742169 0.7770962 0.5516566 0.0000000 0.0000000 0.8110852 0.0000000 0.0000000 0.6999162 0.0000000
## te-chalc tr-signa
## 0.9869445 0.6131232
7.7.3.1 Assimetria e curtose
A assimetria mede a falta de simetria em uma distribuição de frequência. Uma distribuição é simétrica se as duas metades à esquerda e à direita da média são cópias espelhadas uma da outra. Se a distribuição não é simétrica, então é assimétrica. A assimetria pode ser positiva, negativa ou nula (simétrica). Uma assimetria positiva indica que a cauda da distribuição se estende mais para a direita em relação à média, enquanto uma assimetria negativa indica que a cauda da distribuição se estende mais para a esquerda em relação à média.
A curtose descreve o pico ou a “pontiagudez” de uma distribuição. Uma distribuição com alta curtose tem uma alta concentração de valores ao redor da média e caudas mais pesadas (ou seja, valores extremos são mais prováveis). Uma distribuição com baixa curtose é mais achatada e dispersa, com caudas mais leves. A curtose pode ser positiva (distribuição leptocúrtica, com alta concentração em torno da média e caudas pesadas), negativa (distribuição platicúrtica, com dispersão alta e caudas mais leves) ou nula (mesocúrtica, similar à distribuição normal).
Essas medidas são úteis para compreender as propriedades e características de diferentes conjuntos de dados e distribuições de frequência. Elas ajudam a compreender a forma e o comportamento dos dados em uma amostra ou população (Zar 1999).
library(moments)
<- apply(m_trab,1,skewness)
Assimetria
Assimetria<- apply(m_trab,1,kurtosis)
Curtose Curtose
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 4.469425 1.774738 2.959549 2.544388 3.796856 3.482201 4.800000 4.800000 3.252387 4.800000 3.484076
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 3.638552 3.175426 2.282120 4.127075 4.800000 1.437653 4.800000 4.800000 4.790304 2.287297 2.867520
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 4.800000 4.462822 2.544468 4.046241 4.800000 4.800000 2.293389 4.800000 4.800000 3.419722 4.800000
## te-chalc tr-signa
## 3.281874 4.442741
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter cr-menez cu-lepid cy-gilbe
## 21.730097 5.556931 10.273303 7.736436 17.146010 15.065210 24.040000 24.040000 12.820351 24.040000 13.776840
## ge-brasi he-margi ho-malab hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag
## 16.059988 11.083333 7.604321 19.499005 24.040000 3.655586 24.040000 24.040000 23.979582 7.972989 9.860393
## pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton sy-marmo
## 24.040000 21.825541 8.674340 18.659676 24.040000 24.040000 7.676958 24.040000 24.040000 13.817921 24.040000
## te-chalc tr-signa
## 12.021173 21.715543
7.7.3.2 Tabela de descritores
Muito confuso? Criamos na sequência uma tabela final com todos os descritores da comunidade e da normalidade.
7.7.3.2.1 Descritores da estrutura da comunidade: Espécies
Sum, soma; RA, abundância relativa (%), mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; S, riqueza (ou frequência de ocorrência na matriz transposta); E, índice de equitabilidade de Pielou (Pielou 1975); H, índice de diversidade de Shannon (Ludwig and Reynolds 1988); D, índice de diversidade de Simpson (Hurlbert 1971).
<- cbind(Sum, RA, Mean, DP, Max, Min, MinZ, FO, S, E, H, D)
Descritores1 <- as.data.frame(Descritores1)
Descritores1
Descritores1#Descritores1 <- Descritores1 %>% rownames_to_column(var="Espécies") #da nome a primeira coluna
<- apply(Descritores1,2,sum)
SomaTotalD
SomaTotalD<- apply(Descritores1,2,mean)
MediaTotalD
MediaTotalD<- apply(Descritores1,2,sd)
DPTotalD
DPTotalD<- cbind(SomaTotalD, MediaTotalD, DPTotalD)
Descritores2 <- as.data.frame(Descritores2)
Descritores2 <- t(Descritores2)
Descritores2
Descritores2<- rbind(Descritores1, Descritores2)
DescritoresFinal
DescritoresFinal<- round (DescritoresFinal, 2)
DescritoresFinal DescritoresFinal
## Sum RA Mean DP Max Min MinZ FO S E H D
## ap-davis 27 0.30354132 1.03846154 4.3861671 22 0 5 7.692308 2 0.6912899 0.4791656 0.30178326
## as-bimac 2386 26.82405846 91.76923077 132.4348316 511 0 1 88.461538 23 0.7730767 2.4239775 0.88451845
## as-fasci 158 1.77627881 6.07692308 16.2035134 64 0 1 38.461538 10 0.6410755 1.4761308 0.69860599
## ch-bimac 705 7.92580101 27.11538462 75.8732242 273 0 3 19.230769 5 0.7321578 1.1783625 0.67197827
## ci-ocela 70 0.78695897 2.69230769 8.2982853 40 0 2 19.230769 5 0.7383840 1.1883832 0.61020408
## ci-orien 143 1.60764474 5.50000000 14.6184815 69 0 5 26.923077 7 0.7696554 1.4976803 0.70027874
## co-macro 2 0.02248454 0.07692308 0.3922323 2 0 2 3.846154 1 0.0000000 0.0000000 0.00000000
## co-heter 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## cr-menez 28 0.31478359 1.07692308 3.1486261 14 0 1 19.230769 5 0.7583440 1.2205076 0.64540816
## cu-lepid 21 0.23608769 0.80769231 4.1184388 21 0 21 3.846154 1 0.0000000 0.0000000 0.00000000
## cy-gilbe 131 1.47273749 5.03846154 18.3313519 81 0 50 7.692308 2 0.9592195 0.6648803 0.47200047
## ge-brasi 1020 11.46711636 39.23076923 106.3478473 509 0 1 57.692308 15 0.5785997 1.5668772 0.68977124
## he-margi 2 0.02248454 0.07692308 0.2717465 1 0 1 7.692308 2 1.0000000 0.6931472 0.50000000
## ho-malab 109 1.22540753 4.19230769 7.6053625 31 0 1 53.846154 14 0.8020891 2.1167591 0.83982830
## hy-pusar 71 0.79820124 2.73076923 8.6605205 43 0 1 26.923077 7 0.6419992 1.2492728 0.58956556
## le-melan 2 0.02248454 0.07692308 0.3922323 2 0 2 3.846154 1 0.0000000 0.0000000 0.00000000
## le-piau 15 0.16863406 0.57692308 0.9868364 3 0 1 30.769231 8 0.9576352 1.9913464 0.85333333
## le-taeni 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## mo-costa 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## mo-lepid 41 0.46093311 1.57692308 7.6376597 39 0 1 11.538462 3 0.2081906 0.2287207 0.09399167
## or-nilot 848 9.53344576 32.61538462 59.1452970 247 0 1 69.230769 18 0.7290694 2.1072815 0.83992302
## pa-manag 554 6.22821810 21.30769231 62.3928004 250 0 1 19.230769 5 0.7001630 1.1268689 0.64444343
## pimel-sp 6 0.06745363 0.23076923 1.1766968 6 0 6 3.846154 1 0.0000000 0.0000000 0.00000000
## po-retic 381 4.28330523 14.65384615 52.5242362 266 0 5 23.076923 6 0.5742169 1.0288585 0.48641164
## po-vivip 978 10.99494098 37.61538462 79.5004790 326 0 8 42.307692 11 0.7770962 1.8633952 0.79634160
## pr-brevi 279 3.13659359 10.73076923 33.3892889 164 0 1 46.153846 12 0.5516566 1.3708151 0.60348659
## ps-rhomb 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## ps-genise 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## se-heter 296 3.32771220 11.38461538 22.9905666 93 0 3 38.461538 10 0.8110852 1.8675926 0.81071950
## se-piaba 68 0.76447442 2.61538462 13.3358972 68 0 68 3.846154 1 0.0000000 0.0000000 0.00000000
## se-spilo 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## st-noton 205 2.30466554 7.88461538 25.5582893 115 0 1 15.384615 4 0.6999162 0.9702899 0.57294468
## sy-marmo 1 0.01124227 0.03846154 0.1961161 1 0 1 3.846154 1 0.0000000 0.0000000 0.00000000
## te-chalc 134 1.50646431 5.15384615 18.3841068 76 0 58 7.692308 2 0.9869445 0.6840978 0.49097795
## tr-signa 208 2.33839236 8.00000000 27.8280434 141 0 4 23.076923 6 0.6131232 1.0985693 0.51405325
## Sum RA Mean DP Max Min MinZ FO S E
## 8895.00000 100.00000 342.11538 807.30587 3484.00000 0.00000 262.00000 746.15385 194.00000 16.69499
## H D
## 30.09298 14.31057
## Sum RA Mean DP Max Min MinZ FO S
## 254.1428571 2.8571429 9.7747253 23.0658821 99.5428571 0.0000000 7.4857143 21.3186813 5.5428571
## E H D
## 0.4769997 0.8597994 0.4088734
## Sum RA Mean DP Max Min MinZ FO S
## 468.3865386 5.2657284 18.0148669 33.0609233 138.2715450 0.0000000 16.4573807 21.3807831 5.5590036
## E H D
## 0.3757324 0.7784814 0.3354621
## Sum RA Mean DP Max Min MinZ FO S E
## SomaTotalD 8895.0000 100.000000 342.115385 807.30587 3484.00000 0 262.000000 746.15385 194.000000 16.6949878
## MediaTotalD 254.1429 2.857143 9.774725 23.06588 99.54286 0 7.485714 21.31868 5.542857 0.4769997
## DPTotalD 468.3865 5.265728 18.014867 33.06092 138.27155 0 16.457381 21.38078 5.559004 0.3757324
## H D
## SomaTotalD 30.0929803 14.3105692
## MediaTotalD 0.8597994 0.4088734
## DPTotalD 0.7784814 0.3354621
## Sum RA Mean DP Max Min MinZ FO S
## ap-davis 27.0000 0.30354132 1.03846154 4.3861671 22.00000 0 5.000000 7.692308 2.000000
## as-bimac 2386.0000 26.82405846 91.76923077 132.4348316 511.00000 0 1.000000 88.461538 23.000000
## as-fasci 158.0000 1.77627881 6.07692308 16.2035134 64.00000 0 1.000000 38.461538 10.000000
## ch-bimac 705.0000 7.92580101 27.11538462 75.8732242 273.00000 0 3.000000 19.230769 5.000000
## ci-ocela 70.0000 0.78695897 2.69230769 8.2982853 40.00000 0 2.000000 19.230769 5.000000
## ci-orien 143.0000 1.60764474 5.50000000 14.6184815 69.00000 0 5.000000 26.923077 7.000000
## co-macro 2.0000 0.02248454 0.07692308 0.3922323 2.00000 0 2.000000 3.846154 1.000000
## co-heter 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## cr-menez 28.0000 0.31478359 1.07692308 3.1486261 14.00000 0 1.000000 19.230769 5.000000
## cu-lepid 21.0000 0.23608769 0.80769231 4.1184388 21.00000 0 21.000000 3.846154 1.000000
## cy-gilbe 131.0000 1.47273749 5.03846154 18.3313519 81.00000 0 50.000000 7.692308 2.000000
## ge-brasi 1020.0000 11.46711636 39.23076923 106.3478473 509.00000 0 1.000000 57.692308 15.000000
## he-margi 2.0000 0.02248454 0.07692308 0.2717465 1.00000 0 1.000000 7.692308 2.000000
## ho-malab 109.0000 1.22540753 4.19230769 7.6053625 31.00000 0 1.000000 53.846154 14.000000
## hy-pusar 71.0000 0.79820124 2.73076923 8.6605205 43.00000 0 1.000000 26.923077 7.000000
## le-melan 2.0000 0.02248454 0.07692308 0.3922323 2.00000 0 2.000000 3.846154 1.000000
## le-piau 15.0000 0.16863406 0.57692308 0.9868364 3.00000 0 1.000000 30.769231 8.000000
## le-taeni 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## mo-costa 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## mo-lepid 41.0000 0.46093311 1.57692308 7.6376597 39.00000 0 1.000000 11.538462 3.000000
## or-nilot 848.0000 9.53344576 32.61538462 59.1452970 247.00000 0 1.000000 69.230769 18.000000
## pa-manag 554.0000 6.22821810 21.30769231 62.3928004 250.00000 0 1.000000 19.230769 5.000000
## pimel-sp 6.0000 0.06745363 0.23076923 1.1766968 6.00000 0 6.000000 3.846154 1.000000
## po-retic 381.0000 4.28330523 14.65384615 52.5242362 266.00000 0 5.000000 23.076923 6.000000
## po-vivip 978.0000 10.99494098 37.61538462 79.5004790 326.00000 0 8.000000 42.307692 11.000000
## pr-brevi 279.0000 3.13659359 10.73076923 33.3892889 164.00000 0 1.000000 46.153846 12.000000
## ps-rhomb 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## ps-genise 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## se-heter 296.0000 3.32771220 11.38461538 22.9905666 93.00000 0 3.000000 38.461538 10.000000
## se-piaba 68.0000 0.76447442 2.61538462 13.3358972 68.00000 0 68.000000 3.846154 1.000000
## se-spilo 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## st-noton 205.0000 2.30466554 7.88461538 25.5582893 115.00000 0 1.000000 15.384615 4.000000
## sy-marmo 1.0000 0.01124227 0.03846154 0.1961161 1.00000 0 1.000000 3.846154 1.000000
## te-chalc 134.0000 1.50646431 5.15384615 18.3841068 76.00000 0 58.000000 7.692308 2.000000
## tr-signa 208.0000 2.33839236 8.00000000 27.8280434 141.00000 0 4.000000 23.076923 6.000000
## SomaTotalD 8895.0000 100.00000000 342.11538462 807.3058718 3484.00000 0 262.000000 746.153846 194.000000
## MediaTotalD 254.1429 2.85714286 9.77472527 23.0658821 99.54286 0 7.485714 21.318681 5.542857
## DPTotalD 468.3865 5.26572837 18.01486687 33.0609233 138.27155 0 16.457381 21.380783 5.559004
## E H D
## ap-davis 0.6912899 0.4791656 0.30178326
## as-bimac 0.7730767 2.4239775 0.88451845
## as-fasci 0.6410755 1.4761308 0.69860599
## ch-bimac 0.7321578 1.1783625 0.67197827
## ci-ocela 0.7383840 1.1883832 0.61020408
## ci-orien 0.7696554 1.4976803 0.70027874
## co-macro 0.0000000 0.0000000 0.00000000
## co-heter 0.0000000 0.0000000 0.00000000
## cr-menez 0.7583440 1.2205076 0.64540816
## cu-lepid 0.0000000 0.0000000 0.00000000
## cy-gilbe 0.9592195 0.6648803 0.47200047
## ge-brasi 0.5785997 1.5668772 0.68977124
## he-margi 1.0000000 0.6931472 0.50000000
## ho-malab 0.8020891 2.1167591 0.83982830
## hy-pusar 0.6419992 1.2492728 0.58956556
## le-melan 0.0000000 0.0000000 0.00000000
## le-piau 0.9576352 1.9913464 0.85333333
## le-taeni 0.0000000 0.0000000 0.00000000
## mo-costa 0.0000000 0.0000000 0.00000000
## mo-lepid 0.2081906 0.2287207 0.09399167
## or-nilot 0.7290694 2.1072815 0.83992302
## pa-manag 0.7001630 1.1268689 0.64444343
## pimel-sp 0.0000000 0.0000000 0.00000000
## po-retic 0.5742169 1.0288585 0.48641164
## po-vivip 0.7770962 1.8633952 0.79634160
## pr-brevi 0.5516566 1.3708151 0.60348659
## ps-rhomb 0.0000000 0.0000000 0.00000000
## ps-genise 0.0000000 0.0000000 0.00000000
## se-heter 0.8110852 1.8675926 0.81071950
## se-piaba 0.0000000 0.0000000 0.00000000
## se-spilo 0.0000000 0.0000000 0.00000000
## st-noton 0.6999162 0.9702899 0.57294468
## sy-marmo 0.0000000 0.0000000 0.00000000
## te-chalc 0.9869445 0.6840978 0.49097795
## tr-signa 0.6131232 1.0985693 0.51405325
## SomaTotalD 16.6949878 30.0929803 14.31056920
## MediaTotalD 0.4769997 0.8597994 0.40887341
## DPTotalD 0.3757324 0.7784814 0.33546207
## Sum RA Mean DP Max Min MinZ FO S E H D
## ap-davis 27.00 0.30 1.04 4.39 22.00 0 5.00 7.69 2.00 0.69 0.48 0.30
## as-bimac 2386.00 26.82 91.77 132.43 511.00 0 1.00 88.46 23.00 0.77 2.42 0.88
## as-fasci 158.00 1.78 6.08 16.20 64.00 0 1.00 38.46 10.00 0.64 1.48 0.70
## ch-bimac 705.00 7.93 27.12 75.87 273.00 0 3.00 19.23 5.00 0.73 1.18 0.67
## ci-ocela 70.00 0.79 2.69 8.30 40.00 0 2.00 19.23 5.00 0.74 1.19 0.61
## ci-orien 143.00 1.61 5.50 14.62 69.00 0 5.00 26.92 7.00 0.77 1.50 0.70
## co-macro 2.00 0.02 0.08 0.39 2.00 0 2.00 3.85 1.00 0.00 0.00 0.00
## co-heter 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## cr-menez 28.00 0.31 1.08 3.15 14.00 0 1.00 19.23 5.00 0.76 1.22 0.65
## cu-lepid 21.00 0.24 0.81 4.12 21.00 0 21.00 3.85 1.00 0.00 0.00 0.00
## cy-gilbe 131.00 1.47 5.04 18.33 81.00 0 50.00 7.69 2.00 0.96 0.66 0.47
## ge-brasi 1020.00 11.47 39.23 106.35 509.00 0 1.00 57.69 15.00 0.58 1.57 0.69
## he-margi 2.00 0.02 0.08 0.27 1.00 0 1.00 7.69 2.00 1.00 0.69 0.50
## ho-malab 109.00 1.23 4.19 7.61 31.00 0 1.00 53.85 14.00 0.80 2.12 0.84
## hy-pusar 71.00 0.80 2.73 8.66 43.00 0 1.00 26.92 7.00 0.64 1.25 0.59
## le-melan 2.00 0.02 0.08 0.39 2.00 0 2.00 3.85 1.00 0.00 0.00 0.00
## le-piau 15.00 0.17 0.58 0.99 3.00 0 1.00 30.77 8.00 0.96 1.99 0.85
## le-taeni 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## mo-costa 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## mo-lepid 41.00 0.46 1.58 7.64 39.00 0 1.00 11.54 3.00 0.21 0.23 0.09
## or-nilot 848.00 9.53 32.62 59.15 247.00 0 1.00 69.23 18.00 0.73 2.11 0.84
## pa-manag 554.00 6.23 21.31 62.39 250.00 0 1.00 19.23 5.00 0.70 1.13 0.64
## pimel-sp 6.00 0.07 0.23 1.18 6.00 0 6.00 3.85 1.00 0.00 0.00 0.00
## po-retic 381.00 4.28 14.65 52.52 266.00 0 5.00 23.08 6.00 0.57 1.03 0.49
## po-vivip 978.00 10.99 37.62 79.50 326.00 0 8.00 42.31 11.00 0.78 1.86 0.80
## pr-brevi 279.00 3.14 10.73 33.39 164.00 0 1.00 46.15 12.00 0.55 1.37 0.60
## ps-rhomb 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## ps-genise 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## se-heter 296.00 3.33 11.38 22.99 93.00 0 3.00 38.46 10.00 0.81 1.87 0.81
## se-piaba 68.00 0.76 2.62 13.34 68.00 0 68.00 3.85 1.00 0.00 0.00 0.00
## se-spilo 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## st-noton 205.00 2.30 7.88 25.56 115.00 0 1.00 15.38 4.00 0.70 0.97 0.57
## sy-marmo 1.00 0.01 0.04 0.20 1.00 0 1.00 3.85 1.00 0.00 0.00 0.00
## te-chalc 134.00 1.51 5.15 18.38 76.00 0 58.00 7.69 2.00 0.99 0.68 0.49
## tr-signa 208.00 2.34 8.00 27.83 141.00 0 4.00 23.08 6.00 0.61 1.10 0.51
## SomaTotalD 8895.00 100.00 342.12 807.31 3484.00 0 262.00 746.15 194.00 16.69 30.09 14.31
## MediaTotalD 254.14 2.86 9.77 23.07 99.54 0 7.49 21.32 5.54 0.48 0.86 0.41
## DPTotalD 468.39 5.27 18.01 33.06 138.27 0 16.46 21.38 5.56 0.38 0.78 0.34
#Fazendo uma tabela
library(gt)
<- DescritoresFinal
df ncol(df); nrow(df) #no. de N colunas x M linhas
<- cbind(Spp = rownames(df), df)
df gt(df, rowname_col = "Espécie", caption = "Descritores da diversidade por espécie (colunas). Sum, soma; RA, abundância relativa (%); mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; MinZ, menor valor não zero; FO, frequência de ocorrência (%); S, riqueza (ou no. de ocorrências, da matriz transposta); E, índice de equitabilidade de Pielou; H, índice de diversidade de Shannon; D, índice de diversidade de Simpson.")
## [1] 12
## [1] 38
Spp | Sum | RA | Mean | DP | Max | Min | MinZ | FO | S | E | H | D |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ap-davis | 27.00 | 0.30 | 1.04 | 4.39 | 22.00 | 0 | 5.00 | 7.69 | 2.00 | 0.69 | 0.48 | 0.30 |
as-bimac | 2386.00 | 26.82 | 91.77 | 132.43 | 511.00 | 0 | 1.00 | 88.46 | 23.00 | 0.77 | 2.42 | 0.88 |
as-fasci | 158.00 | 1.78 | 6.08 | 16.20 | 64.00 | 0 | 1.00 | 38.46 | 10.00 | 0.64 | 1.48 | 0.70 |
ch-bimac | 705.00 | 7.93 | 27.12 | 75.87 | 273.00 | 0 | 3.00 | 19.23 | 5.00 | 0.73 | 1.18 | 0.67 |
ci-ocela | 70.00 | 0.79 | 2.69 | 8.30 | 40.00 | 0 | 2.00 | 19.23 | 5.00 | 0.74 | 1.19 | 0.61 |
ci-orien | 143.00 | 1.61 | 5.50 | 14.62 | 69.00 | 0 | 5.00 | 26.92 | 7.00 | 0.77 | 1.50 | 0.70 |
co-macro | 2.00 | 0.02 | 0.08 | 0.39 | 2.00 | 0 | 2.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
co-heter | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
cr-menez | 28.00 | 0.31 | 1.08 | 3.15 | 14.00 | 0 | 1.00 | 19.23 | 5.00 | 0.76 | 1.22 | 0.65 |
cu-lepid | 21.00 | 0.24 | 0.81 | 4.12 | 21.00 | 0 | 21.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
cy-gilbe | 131.00 | 1.47 | 5.04 | 18.33 | 81.00 | 0 | 50.00 | 7.69 | 2.00 | 0.96 | 0.66 | 0.47 |
ge-brasi | 1020.00 | 11.47 | 39.23 | 106.35 | 509.00 | 0 | 1.00 | 57.69 | 15.00 | 0.58 | 1.57 | 0.69 |
he-margi | 2.00 | 0.02 | 0.08 | 0.27 | 1.00 | 0 | 1.00 | 7.69 | 2.00 | 1.00 | 0.69 | 0.50 |
ho-malab | 109.00 | 1.23 | 4.19 | 7.61 | 31.00 | 0 | 1.00 | 53.85 | 14.00 | 0.80 | 2.12 | 0.84 |
hy-pusar | 71.00 | 0.80 | 2.73 | 8.66 | 43.00 | 0 | 1.00 | 26.92 | 7.00 | 0.64 | 1.25 | 0.59 |
le-melan | 2.00 | 0.02 | 0.08 | 0.39 | 2.00 | 0 | 2.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
le-piau | 15.00 | 0.17 | 0.58 | 0.99 | 3.00 | 0 | 1.00 | 30.77 | 8.00 | 0.96 | 1.99 | 0.85 |
le-taeni | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
mo-costa | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
mo-lepid | 41.00 | 0.46 | 1.58 | 7.64 | 39.00 | 0 | 1.00 | 11.54 | 3.00 | 0.21 | 0.23 | 0.09 |
or-nilot | 848.00 | 9.53 | 32.62 | 59.15 | 247.00 | 0 | 1.00 | 69.23 | 18.00 | 0.73 | 2.11 | 0.84 |
pa-manag | 554.00 | 6.23 | 21.31 | 62.39 | 250.00 | 0 | 1.00 | 19.23 | 5.00 | 0.70 | 1.13 | 0.64 |
pimel-sp | 6.00 | 0.07 | 0.23 | 1.18 | 6.00 | 0 | 6.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
po-retic | 381.00 | 4.28 | 14.65 | 52.52 | 266.00 | 0 | 5.00 | 23.08 | 6.00 | 0.57 | 1.03 | 0.49 |
po-vivip | 978.00 | 10.99 | 37.62 | 79.50 | 326.00 | 0 | 8.00 | 42.31 | 11.00 | 0.78 | 1.86 | 0.80 |
pr-brevi | 279.00 | 3.14 | 10.73 | 33.39 | 164.00 | 0 | 1.00 | 46.15 | 12.00 | 0.55 | 1.37 | 0.60 |
ps-rhomb | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
ps-genise | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
se-heter | 296.00 | 3.33 | 11.38 | 22.99 | 93.00 | 0 | 3.00 | 38.46 | 10.00 | 0.81 | 1.87 | 0.81 |
se-piaba | 68.00 | 0.76 | 2.62 | 13.34 | 68.00 | 0 | 68.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
se-spilo | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
st-noton | 205.00 | 2.30 | 7.88 | 25.56 | 115.00 | 0 | 1.00 | 15.38 | 4.00 | 0.70 | 0.97 | 0.57 |
sy-marmo | 1.00 | 0.01 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 3.85 | 1.00 | 0.00 | 0.00 | 0.00 |
te-chalc | 134.00 | 1.51 | 5.15 | 18.38 | 76.00 | 0 | 58.00 | 7.69 | 2.00 | 0.99 | 0.68 | 0.49 |
tr-signa | 208.00 | 2.34 | 8.00 | 27.83 | 141.00 | 0 | 4.00 | 23.08 | 6.00 | 0.61 | 1.10 | 0.51 |
SomaTotalD | 8895.00 | 100.00 | 342.12 | 807.31 | 3484.00 | 0 | 262.00 | 746.15 | 194.00 | 16.69 | 30.09 | 14.31 |
MediaTotalD | 254.14 | 2.86 | 9.77 | 23.07 | 99.54 | 0 | 7.49 | 21.32 | 5.54 | 0.48 | 0.86 | 0.41 |
DPTotalD | 468.39 | 5.27 | 18.01 | 33.06 | 138.27 | 0 | 16.46 | 21.38 | 5.56 | 0.38 | 0.78 | 0.34 |
7.7.3.2.2 Descritores da normalidade
Agora tabelamos os descritores de normalidade
<- cbind(Assimetria, Curtose)
Normalidade1 <- as.data.frame(Normalidade1)
Normalidade1
Normalidade1<- apply(Normalidade1,2,sum)
SomaTotalN
SomaTotalN<- apply(Normalidade1,2,mean)
MediaTotalN
MediaTotalN<- apply(Normalidade1,2,sd)
DPTotalN
DPTotalN<-cbind(SomaTotalN, MediaTotalN, DPTotalN)
Normalidade2<-as.data.frame(Normalidade2)
Normalidade2<- t(Normalidade2) #"t" transpoe a matriz
Normalidade2
Normalidade2<- rbind(Normalidade1, Normalidade2)
NormalidadeFinal
NormalidadeFinal<- round(NormalidadeFinal, 2)
NormalidadeFinal NormalidadeFinal
## Assimetria Curtose
## ap-davis 4.469425 21.730097
## as-bimac 1.774738 5.556931
## as-fasci 2.959549 10.273303
## ch-bimac 2.544388 7.736436
## ci-ocela 3.796856 17.146010
## ci-orien 3.482201 15.065210
## co-macro 4.800000 24.040000
## co-heter 4.800000 24.040000
## cr-menez 3.252387 12.820351
## cu-lepid 4.800000 24.040000
## cy-gilbe 3.484076 13.776840
## ge-brasi 3.638552 16.059988
## he-margi 3.175426 11.083333
## ho-malab 2.282120 7.604321
## hy-pusar 4.127075 19.499005
## le-melan 4.800000 24.040000
## le-piau 1.437653 3.655586
## le-taeni 4.800000 24.040000
## mo-costa 4.800000 24.040000
## mo-lepid 4.790304 23.979582
## or-nilot 2.287297 7.972989
## pa-manag 2.867520 9.860393
## pimel-sp 4.800000 24.040000
## po-retic 4.462822 21.825541
## po-vivip 2.544468 8.674340
## pr-brevi 4.046241 18.659676
## ps-rhomb 4.800000 24.040000
## ps-genise 4.800000 24.040000
## se-heter 2.293389 7.676958
## se-piaba 4.800000 24.040000
## se-spilo 4.800000 24.040000
## st-noton 3.419722 13.817921
## sy-marmo 4.800000 24.040000
## te-chalc 3.281874 12.021173
## tr-signa 4.442741 21.715543
## Assimetria Curtose
## 132.4608 596.6915
## Assimetria Curtose
## 3.784595 17.048329
## Assimetria Curtose
## 1.043802 6.944634
## Assimetria Curtose
## SomaTotalN 132.460824 596.691528
## MediaTotalN 3.784595 17.048329
## DPTotalN 1.043802 6.944634
## Assimetria Curtose
## ap-davis 4.469425 21.730097
## as-bimac 1.774738 5.556931
## as-fasci 2.959549 10.273303
## ch-bimac 2.544388 7.736436
## ci-ocela 3.796856 17.146010
## ci-orien 3.482201 15.065210
## co-macro 4.800000 24.040000
## co-heter 4.800000 24.040000
## cr-menez 3.252387 12.820351
## cu-lepid 4.800000 24.040000
## cy-gilbe 3.484076 13.776840
## ge-brasi 3.638552 16.059988
## he-margi 3.175426 11.083333
## ho-malab 2.282120 7.604321
## hy-pusar 4.127075 19.499005
## le-melan 4.800000 24.040000
## le-piau 1.437653 3.655586
## le-taeni 4.800000 24.040000
## mo-costa 4.800000 24.040000
## mo-lepid 4.790304 23.979582
## or-nilot 2.287297 7.972989
## pa-manag 2.867520 9.860393
## pimel-sp 4.800000 24.040000
## po-retic 4.462822 21.825541
## po-vivip 2.544468 8.674340
## pr-brevi 4.046241 18.659676
## ps-rhomb 4.800000 24.040000
## ps-genise 4.800000 24.040000
## se-heter 2.293389 7.676958
## se-piaba 4.800000 24.040000
## se-spilo 4.800000 24.040000
## st-noton 3.419722 13.817921
## sy-marmo 4.800000 24.040000
## te-chalc 3.281874 12.021173
## tr-signa 4.442741 21.715543
## SomaTotalN 132.460824 596.691528
## MediaTotalN 3.784595 17.048329
## DPTotalN 1.043802 6.944634
## Assimetria Curtose
## ap-davis 4.47 21.73
## as-bimac 1.77 5.56
## as-fasci 2.96 10.27
## ch-bimac 2.54 7.74
## ci-ocela 3.80 17.15
## ci-orien 3.48 15.07
## co-macro 4.80 24.04
## co-heter 4.80 24.04
## cr-menez 3.25 12.82
## cu-lepid 4.80 24.04
## cy-gilbe 3.48 13.78
## ge-brasi 3.64 16.06
## he-margi 3.18 11.08
## ho-malab 2.28 7.60
## hy-pusar 4.13 19.50
## le-melan 4.80 24.04
## le-piau 1.44 3.66
## le-taeni 4.80 24.04
## mo-costa 4.80 24.04
## mo-lepid 4.79 23.98
## or-nilot 2.29 7.97
## pa-manag 2.87 9.86
## pimel-sp 4.80 24.04
## po-retic 4.46 21.83
## po-vivip 2.54 8.67
## pr-brevi 4.05 18.66
## ps-rhomb 4.80 24.04
## ps-genise 4.80 24.04
## se-heter 2.29 7.68
## se-piaba 4.80 24.04
## se-spilo 4.80 24.04
## st-noton 3.42 13.82
## sy-marmo 4.80 24.04
## te-chalc 3.28 12.02
## tr-signa 4.44 21.72
## SomaTotalN 132.46 596.69
## MediaTotalN 3.78 17.05
## DPTotalN 1.04 6.94
A função fix(nome da matriz)
dá acesso ao grid da matriz criada para manipulação dos dados numéricos.
#Fazendo uma tabela
<- NormalidadeFinal
nf ncol(nf); nrow(nf) #no. de N colunas x M linhas
<- cbind(Spp = rownames(nf), nf)
nf gt(nf, rowname_col = "Espécie", caption = "Descritores da normalidade por espécie (coluna)")
## [1] 2
## [1] 38
Spp | Assimetria | Curtose |
---|---|---|
ap-davis | 4.47 | 21.73 |
as-bimac | 1.77 | 5.56 |
as-fasci | 2.96 | 10.27 |
ch-bimac | 2.54 | 7.74 |
ci-ocela | 3.80 | 17.15 |
ci-orien | 3.48 | 15.07 |
co-macro | 4.80 | 24.04 |
co-heter | 4.80 | 24.04 |
cr-menez | 3.25 | 12.82 |
cu-lepid | 4.80 | 24.04 |
cy-gilbe | 3.48 | 13.78 |
ge-brasi | 3.64 | 16.06 |
he-margi | 3.18 | 11.08 |
ho-malab | 2.28 | 7.60 |
hy-pusar | 4.13 | 19.50 |
le-melan | 4.80 | 24.04 |
le-piau | 1.44 | 3.66 |
le-taeni | 4.80 | 24.04 |
mo-costa | 4.80 | 24.04 |
mo-lepid | 4.79 | 23.98 |
or-nilot | 2.29 | 7.97 |
pa-manag | 2.87 | 9.86 |
pimel-sp | 4.80 | 24.04 |
po-retic | 4.46 | 21.83 |
po-vivip | 2.54 | 8.67 |
pr-brevi | 4.05 | 18.66 |
ps-rhomb | 4.80 | 24.04 |
ps-genise | 4.80 | 24.04 |
se-heter | 2.29 | 7.68 |
se-piaba | 4.80 | 24.04 |
se-spilo | 4.80 | 24.04 |
st-noton | 3.42 | 13.82 |
sy-marmo | 4.80 | 24.04 |
te-chalc | 3.28 | 12.02 |
tr-signa | 4.44 | 21.72 |
SomaTotalN | 132.46 | 596.69 |
MediaTotalN | 3.78 | 17.05 |
DPTotalN | 1.04 | 6.94 |
Nos Apêndices você pode ver o script para os mesmos descritores para as Unidades Amostrais (UA´s)
7.7.3.3 Lidando com células vazias
Em R, NaN
(Not a Number) e NA
(Not Available) são valores especiais que representam dados ausentes ou valores inválidos em um vetor, matriz, data frame ou outra estrutura de dados.
NaN (Not a Number): É usado para representar resultados inválidos em operações matemáticas, como a divisão por zero ou a operação de raiz quadrada de um número negativo.
NA (Not Available): É usado para indicar dados ausentes. Pode ser usado em contextos onde o valor real está ausente ou desconhecido.
Em muitas operações, o NA
é tratado como um valor especial que propagará em outras operações. Isso significa que se uma operação é realizada com um ou mais valores NA
, o resultado geralmente será NA
. Por outro lado, NaN
é um valor específico que indica um resultado matematicamente indefinido ou inválido.
Por exemplo, ao realizar operações em um vetor que contém NA
, o resultado será NA
para qualquer operação que envolva um valor NA
:
<- c(1, 2, NA, 4)
x mean(x) # Resultado será NA porque há um valor NA no vetor
## [1] NA
Por outro lado, NaN
resulta de operações matemáticas inválidas:
0/0 # Resultado será NaN, pois a divisão por zero é indefinida
sqrt(-1) # Resultado será NaN, pois não há raiz quadrada real de um número negativo
## Warning in sqrt(-1): NaNs produced
## [1] NaN
## [1] NaN
Em resumo, enquanto NA
indica dados ausentes ou não disponíveis, NaN
indica resultados de operações matematicamente inválidos.
7.7.3.3.1 Salvando as tabelas criadas em .txt direto no diretório de trabalho
write.table(data.frame("Spp"=rownames(DescritoresFinal),
DescritoresFinal),"DescritoresSPP.txt",
row.names=FALSE,
sep="\t")
write.table(data.frame("Spp"=rownames(NormalidadeFinal),
NormalidadeFinal),"NormalidadeSPP.txt",
row.names=FALSE,
sep="\t")
Agora é necessário voltar à matriz comunitária (antes de ter sido transposta), antes de continuarmos a análise, porque as análises anteriores também precisam ser refeitas com a matriz não transposta. A seguir confere-se se está sendo usada a matriz comunitária com as espécies nas colunas.
Para ver o código dos descritores da estrutura da comunidade para as Unidades Amostrais (UA’s), matriz não transposta, veja Descritores da estrutura da comunidade: UA’s nos apêndices.
m_trab
## S-A-ZA1 S-R-CC1 S-R-CT1 S-R-CP1 S-A-TA1 S-R-CT2 S-R-CP2 S-A-TA2 S-R-CT3 S-R-CP3 S-A-TA3 S-R-CT4 S-R-CP4
## ap-davis 0 0 0 0 0 0 0 0 0 0 0 0 0
## as-bimac 1 99 194 19 23 142 5 46 206 16 234 0 0
## as-fasci 0 0 55 0 1 3 1 0 64 0 7 1 0
## ch-bimac 0 0 0 0 13 3 0 178 0 0 238 0 0
## ci-ocela 0 0 0 0 0 0 40 0 0 13 0 0 11
## ci-orien 0 0 5 0 0 69 9 0 25 24 0 5 6
## co-macro 0 0 0 0 0 0 0 0 0 0 2 0 0
## co-heter 0 0 1 0 0 0 0 0 0 0 0 0 0
## cr-menez 0 0 14 0 0 4 0 0 8 0 0 1 0
## cu-lepid 0 0 0 0 0 0 0 0 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 0 0 0 0 0 0 50 0
## ge-brasi 0 0 3 0 0 0 0 0 1 0 0 3 0
## he-margi 0 0 0 0 0 1 0 0 0 0 0 1 0
## ho-malab 0 0 1 5 0 17 10 2 31 4 20 4 2
## hy-pusar 0 0 9 2 0 43 2 0 11 0 0 3 0
## le-melan 0 0 0 0 0 0 0 0 0 0 0 0 0
## le-piau 0 0 3 0 0 1 3 0 2 1 0 0 2
## le-taeni 0 0 0 0 0 0 0 0 0 0 0 0 0
## mo-costa 0 0 0 0 0 0 0 0 0 0 0 0 0
## mo-lepid 0 1 39 0 0 1 0 0 0 0 0 0 0
## or-nilot 0 2 36 0 0 77 0 0 138 0 0 73 0
## pa-manag 0 0 0 0 0 0 0 0 0 0 0 0 0
## pimel-sp 0 0 6 0 0 0 0 0 0 0 0 0 0
## po-retic 0 0 0 0 0 20 0 0 5 0 0 0 0
## po-vivip 0 0 47 15 0 221 32 0 326 10 0 28 80
## pr-brevi 9 0 5 0 1 15 5 2 164 0 0 59 0
## ps-rhomb 0 0 0 0 0 0 0 0 1 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0 1 0 0 0 0
## se-heter 0 0 40 14 4 60 0 0 38 0 0 3 3
## se-piaba 0 0 68 0 0 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 1 0 0 0 0
## st-noton 0 0 1 0 0 25 0 0 115 0 0 64 0
## sy-marmo 0 0 0 0 0 0 1 0 0 0 0 0 0
## te-chalc 0 0 0 0 0 0 0 0 0 0 0 0 0
## tr-signa 0 0 18 0 0 15 0 0 7 0 0 141 0
## S-A-TA4 B-A-MU1 B-R-ET1 B-A-GU1 B-R-PC2 B-A-MU2 B-A-GU2 B-R-PC3 B-A-MU3 B-A-GU3 B-R-PC4 B-A-MU4 B-A-GU4
## ap-davis 0 0 0 0 5 0 0 22 0 0 0 0 0
## as-bimac 394 12 3 2 44 99 0 75 511 6 7 235 13
## as-fasci 0 0 0 2 0 0 0 7 0 0 17 0 0
## ch-bimac 273 0 0 0 0 0 0 0 0 0 0 0 0
## ci-ocela 0 0 0 0 2 0 0 4 0 0 0 0 0
## ci-orien 0 0 0 0 0 0 0 0 0 0 0 0 0
## co-macro 0 0 0 0 0 0 0 0 0 0 0 0 0
## co-heter 0 0 0 0 0 0 0 0 0 0 0 0 0
## cr-menez 1 0 0 0 0 0 0 0 0 0 0 0 0
## cu-lepid 0 0 0 0 0 0 0 21 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 0 0 0 0 0 81 0 0
## ge-brasi 1 190 0 7 8 67 23 16 145 32 5 509 10
## he-margi 0 0 0 0 0 0 0 0 0 0 0 0 0
## ho-malab 9 0 0 0 0 1 0 2 0 0 1 0 0
## hy-pusar 0 0 0 0 0 0 0 1 0 0 0 0 0
## le-melan 0 0 0 0 2 0 0 0 0 0 0 0 0
## le-piau 2 0 0 0 0 0 0 0 0 0 1 0 0
## le-taeni 0 0 0 0 1 0 0 0 0 0 0 0 0
## mo-costa 0 0 0 0 0 0 0 1 0 0 0 0 0
## mo-lepid 0 0 0 0 0 0 0 0 0 0 0 0 0
## or-nilot 1 6 8 3 5 1 36 65 11 247 9 1 129
## pa-manag 0 0 1 11 0 0 102 0 0 250 0 0 190
## pimel-sp 0 0 0 0 0 0 0 0 0 0 0 0 0
## po-retic 0 0 34 0 0 10 0 0 46 0 0 266 0
## po-vivip 0 0 0 0 0 8 0 0 48 0 0 163 0
## pr-brevi 3 0 0 0 9 0 0 6 1 0 0 0 0
## ps-rhomb 0 0 0 0 0 0 0 0 0 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0 0 0 0 0 0
## se-heter 0 0 0 0 10 0 0 93 0 0 31 0 0
## se-piaba 0 0 0 0 0 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 0 0 0 0 0
## st-noton 0 0 0 0 0 0 0 0 0 0 0 0 0
## sy-marmo 0 0 0 0 0 0 0 0 0 0 0 0 0
## te-chalc 0 0 0 0 76 0 0 58 0 0 0 0 0
## tr-signa 0 0 0 0 23 0 0 0 0 0 4 0 0
<- ppbio m_trab
Agora faremos uma série de gráficos para a matriz comunitária.
7.8 Gráficos descritivos
7.8.1 Série de Hill e pefil da diversidade
Pode-se utilizar uma série de Hill ao invés dos índices específicos de diversidade. Assim, quanto maior o valor de q
(definido em scales
), maior será o peso para a equabilidade. Quanto mais próximo de zero, maior o peso para riqueza. Quando q = 0
, o valor de Hill é igual a riqueza de espécies.
<- renyi(m_trab,
Hill scales = c(0:5),
hill = TRUE)
Hill
## 0 1 2 3 4 5
## S-A-ZA1 2 1.384145 1.219512 1.170411 1.150768 1.140762
## S-R-CC1 3 1.163476 1.060983 1.045792 1.040607 1.038021
## S-R-CT1 18 8.433432 5.644824 4.479923 3.925407 3.628965
## S-R-CP1 5 4.089106 3.729963 3.562264 3.464767 3.397679
## S-A-TA1 5 2.988203 2.463687 2.265900 2.160258 2.093130
## S-R-CT2 17 8.120284 5.912807 4.995084 4.517360 4.233135
## S-R-CP2 10 5.475674 4.064111 3.571020 3.347621 3.223289
## S-A-TA2 4 1.820866 1.537624 1.437328 1.389021 1.362287
## S-R-CT3 18 7.820420 6.079509 5.349788 4.920580 4.635690
## S-R-CP3 6 4.641083 4.135957 3.852830 3.659934 3.518793
## S-A-TA3 5 2.507947 2.244026 2.186542 2.165167 2.154376
## S-R-CT4 14 6.554517 5.259698 4.665939 4.284640 4.026809
## S-R-CP4 6 2.359044 1.645269 1.479932 1.418625 1.388109
## S-A-TA4 8 2.249743 2.035378 1.981428 1.947091 1.920271
## B-A-MU1 3 1.418412 1.192503 1.145257 1.128263 1.119791
## B-R-ET1 4 2.200997 1.720325 1.562987 1.494812 1.458881
## B-A-GU1 5 3.959865 3.342246 3.016650 2.834369 2.720943
## B-R-PC2 11 5.630175 4.005266 3.427912 3.151799 2.991159
## B-A-MU2 6 2.863745 2.393193 2.248679 2.175626 2.127807
## B-A-GU2 3 2.464739 2.119634 1.930295 1.826854 1.766551
## B-R-PC3 13 7.253371 5.945359 5.447786 5.182436 5.009929
## B-A-MU3 6 2.710687 2.025352 1.799132 1.699897 1.647087
## B-A-GU3 4 2.537469 2.297723 2.232385 2.206183 2.192731
## B-R-PC4 9 4.374404 3.048096 2.586659 2.377604 2.263942
## B-A-MU4 5 3.672499 3.348321 3.103452 2.925311 2.799120
## B-A-GU4 4 2.514025 2.206452 2.107190 2.053368 2.015850
Podemos mapear isso em um gráfico de perfil de diversidade
library(ggplot2)
library(tidyr)
library(tidyverse)
<- Hill %>%
grafico1 rownames_to_column() %>%
pivot_longer(-rowname) %>%
mutate(name = factor(name, name[1:length(Hill)])) %>%
ggplot(aes(x = name, y = value, group = rowname,
col = rowname)) +
geom_point(size = 2) +
geom_line(size = 1) +
xlab("Parâmetro de ordem de diversidade (q)") +
ylab("Diversidade") +
labs(col = "Locais") +
theme_bw() +
theme(text = element_text(size = 10)) #ajustar a fonte caso nao caiba no output html
grafico1ggsave(grafico1, dpi = 300, filename = "fig-hill.png")
## Saving 7 x 5 in image

Figura 7.1: Mapeamento dos pontos de coleta em um gráfico de perfil de diversidade.
7.9 Distribuição de abundância
Uma maneira de observar a diversidade de espécies é usando um gráfico de distribuição de abundâncias de uma comunidade, como mostrado a seguir. Note que aqui utiliza-se as abundâncias totais das espécies (Figura 7.2), mas é possível fazer por linha, basta substituir o objeto abund
pela abundância de uma linha. Como na linha marcada com o #
.
<- colSums(m_trab) abund
Na primeira linha do código abaixo, retira-se o #
do início da linha para rodar a distribuição de abundância apenas para o local (linha) 1 comunidade[1,]
. Pode-se mudar o número para o local de interesse.
O código a seguir produzirá o gráfico para o local escolhido.
#abund <- m_trab[1, ] #escolhe a primeira linha para a distribuição de abundância
<- data.frame(sp = colnames(m_trab),
df abun = abund)
<- ggplot(df, aes(fct_reorder(sp, -abun),
grafico2 group = 1)) +
abun, geom_col() +
geom_line(col = "red", linetype = "dashed") +
geom_point(col = "red") +
xlab("Espécies") +
ylab("Abundância") +
theme_bw() +
theme(axis.text.x = element_text(
angle = 45,
hjust = 1,
face = "italic"))
grafico2ggsave(grafico2, dpi = 300, filename = "fig-abun.png")
## Saving 7 x 5 in image

Figura 7.2: Distribuição da densidade de indivíduos.
7.10 Curva de rarefação
O código abaixo indica como usar o pacote iNEXT para extrapolar e interpolar curvas de rarefação visando comparar a riqueza de diferentes locais (linhas, por isso se trabalha com a matriz transposta). A curva de raferação vai ser construida para as UA’s demarcadas em rarefa <- t(m_trab[c("S-R-CT2","S-R-CP2","S-A-TA2","B-A-MU2"),])
Pode-se, alternativamente, construrir a curva de raferação para as 8 linhas (UA’s) com maior somatório dos valores das espécies (linhas marcadas com o símbolo #
).
<- mutate(m_trab, across(everything(), ceiling)) #arredonda a matriz original para números inteiros
m_trab_r colSums(t(m_trab_r))
colnames(t(m_trab_r))
<- t(m_trab_r[c("S-R-CT2","S-R-CP2","S-A-TA2","B-A-MU2"),]) #curva de rarefação para os sítios especificados
rarefa class(m_trab)
## Curva de rarefação para todos os sítios
#rarefa <- t(m_trab_r)
## Curva de rarefação para as 8 UA's com maior soma
#m_trab_r <- as.data.frame(t(m_trab_r)) #transpõe a matriz
#col_sums <- colSums(m_trab_r)
#largest_columns <- names(sort(col_sums, decreasing = TRUE)[1:8])
#rarefa <- m_trab_r[largest_columns] #curva de rarefação para as 8 UA's com maior soma
## S-A-ZA1 S-R-CC1 S-R-CT1 S-R-CP1 S-A-TA1 S-R-CT2 S-R-CP2 S-A-TA2 S-R-CT3 S-R-CP3 S-A-TA3 S-R-CT4 S-R-CP4 S-A-TA4
## 10 102 545 55 42 717 108 228 1144 68 501 436 104 684
## B-A-MU1 B-R-ET1 B-A-GU1 B-R-PC2 B-A-MU2 B-A-GU2 B-R-PC3 B-A-MU3 B-A-GU3 B-R-PC4 B-A-MU4 B-A-GU4
## 208 46 25 185 186 161 371 762 535 156 1174 342
## [1] "S-A-ZA1" "S-R-CC1" "S-R-CT1" "S-R-CP1" "S-A-TA1" "S-R-CT2" "S-R-CP2" "S-A-TA2" "S-R-CT3" "S-R-CP3" "S-A-TA3"
## [12] "S-R-CT4" "S-R-CP4" "S-A-TA4" "B-A-MU1" "B-R-ET1" "B-A-GU1" "B-R-PC2" "B-A-MU2" "B-A-GU2" "B-R-PC3" "B-A-MU3"
## [23] "B-A-GU3" "B-R-PC4" "B-A-MU4" "B-A-GU4"
## [1] "data.frame"
No código abaixo o valor de q
pode ser mudado para q=1
para comparar a diversidade de Shannon e para q=2
para Simpson (Figura (7.3). A função endpoint=
define o tamanho da amostra para o qual se deseja extrapolar a curva de rarefação. Se endpoint=NULL
, a extrapolação será feita para o dobro do valor amostrado.
library(iNEXT)
<- iNEXT(rarefa, q = 0,
out datatype = "abundance",
size = NULL,
endpoint = 2000, #define o comprimento de eixo x
knots = 40,
se = TRUE,
conf = 0.95,
nboot = 50)
<- ggiNEXT(out, type = 1, facet.var="None") +
grafico3 theme_bw() +
labs(fill = "Áreas") +
xlab("Número de indivíduos") +
ylab("Riqueza de espécies") +
theme(legend.title=element_blank()) #ver como fica com facet.var="Assemblage"
grafico3ggsave(grafico3, dpi = 300, filename = "fig-rare1.png")
## Saving 7 x 5 in image

Figura 7.3: Curva de rafefação para sítios específicos. q=0
, riqueza; q=1
, diversidade de Shannon; q=2
, diversidade de Simpson; q=5
, equitabilidade.
A linha sólida representa a interpolação do número de espécies observadas, e a linha tracejada mostra uma extrapolação do que seria esperado dado um aumento no número de indivíduos coletados. A área mais clara representa o intervalo de confiança de 95%.
7.10.1 Interpretando a curva de rarefação
A curva de rarefação é uma ferramenta gráfica comumente usada em ecologia para estimar e visualizar a riqueza de espécies em uma comunidade, especialmente quando se têm dados de amostragem incompletos. Ela ajuda a responder à pergunta: “Quantas espécies diferentes podemos esperar encontrar em uma comunidade com base nas amostras que coletamos até agora?”
Aqui está uma explicação passo a passo sobre como interpretar uma curva de rarefação:
- Eixo X (Número de Indivíduos Amostrados):
- O eixo horizontal (eixo X) representa o número de indivíduos ou unidades amostrados da comunidade. Isso pode ser o número de indivíduos observados, o número de amostras coletadas ou qualquer outra unidade de amostragem que seja relevante para o estudo.
- Eixo Y (Riqueza de Espécies):
- O eixo vertical (eixo Y) representa a riqueza de espécies, ou seja, o número total de espécies diferentes observadas ou estimadas nas amostras.
- Pontos na Curva:
- Cada ponto na curva de rarefação representa a riqueza de espécies estimada com base no número de indivíduos amostrados até o momento.
- À medida que você aumenta o número de indivíduos amostrados (ou seja, move-se para a direita ao longo do eixo X), a riqueza de espécies estimada também aumenta (ou seja, move-se para cima ao longo do eixo Y).
- Inclinação da Curva:
- A inclinação da curva de rarefação é importante. Uma curva que sobe rapidamente indica que novas espécies estão sendo encontradas à medida que mais indivíduos são amostrados. Isso sugere que a comunidade é rica em espécies, e ainda há muitas espécies não observadas.
- Uma curva que sobe lentamente sugere que a maioria das espécies já foi observada, e a riqueza de espécies está se estabilizando. Isso indica uma comunidade menos diversa ou uma amostragem mais completa.
- Assíntota:
- A assíntota é o ponto em que a curva de rarefação começa a nivelar-se, e a adição de mais indivíduos à amostra tem um impacto mínimo na riqueza de espécies estimada. A assíntota é uma estimativa da riqueza de espécies máxima que pode ser alcançada com a amostragem disponível.
- Interpretação:
- A interpretação da curva de rarefação depende do contexto. Se a curva ainda estiver subindo acentuadamente no ponto em que você parou de amostrar, isso sugere que a amostragem está incompleta, e mais espécies provavelmente serão encontradas com mais esforço de amostragem.
- Se a curva estiver nivelada e próxima de uma assíntota, isso sugere que a amostragem foi mais completa, e você pode ter uma estimativa confiável da riqueza de espécies na comunidade.
- Estimativas da Riqueza:
- A curva de rarefação pode ser usada para fazer estimativas da riqueza de espécies com base nas amostras coletadas. No entanto, lembre-se de que essas são estimativas e estão sujeitas a variações amostrais. É comum calcular intervalos de confiança ao redor dessas estimativas.
Em resumo, a curva de rarefação é uma ferramenta valiosa para estimar a riqueza de espécies em uma comunidade com base em amostras coletadas. A interpretação depende da inclinação da curva, da presença de uma assíntota e do contexto do estudo. É importante lembrar que a amostragem mais completa geralmente resulta em estimativas mais confiáveis da riqueza de espécies.
7.11 Curva de acumulação de espécies
<- specaccum(m_trab,
acumula method = "random")
acumula
## Species Accumulation Curve
## Accumulation method: random, with 100 permutations
## Call: specaccum(comm = m_trab, method = "random")
##
##
## Sites 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 9.00000 10.00000 11.00000
## Richness 7.70000 12.09000 15.00000 16.82000 18.77000 20.53000 21.86000 23.23000 24.65000 25.47000 26.57000
## sd 4.63081 5.07339 4.57927 4.48202 4.21363 4.09102 4.08995 3.73586 3.16348 3.00321 2.77163
##
## Sites 12.0000 13.00000 14.00000 15.00000 16.000 17.00000 18.00000 19.00000 20.00000 21.00000 22.00000 23.00000
## Richness 27.6100 28.01000 28.66000 29.22000 29.940 30.52000 31.04000 31.57000 32.19000 32.76000 33.27000 33.80000
## sd 2.7373 2.77614 2.65992 2.75087 2.593 2.56818 2.42845 2.46288 2.28166 2.24337 1.87409 1.65755
##
## Sites 24.0000 25.0000 26
## Richness 34.2000 34.5800 35
## sd 1.3484 0.9231 0
7.11.1 Plot locais
Plotamos uma curva de acumulação de espécies simples.
plot(acumula)
Uma curva de acumulação de espécies é uma ferramenta gráfica usada para entender como a riqueza de espécies em uma comunidade aumenta à medida que mais amostras são coletadas ou observações são feitas. Ela é especialmente útil em estudos de biodiversidade e ecologia. Aqui está uma explicação sobre como interpretar uma curva de acumulação de espécies:
- Eixo X (Número de Amostras ou Unidades de Observação):
- O eixo horizontal (eixo X) representa o número de amostras coletadas, unidades de observação ou esforço amostral. Isso pode ser o número de áreas amostradas, pontos de observação, horas de coleta de dados ou qualquer unidade relevante para o estudo.
- Eixo Y (Riqueza de Espécies Acumulada):
- O eixo vertical (eixo Y) representa a riqueza de espécies acumulada, ou seja, o número total de espécies diferentes observadas ou registradas até o momento.
- Pontos na Curva:
- Cada ponto na curva de acumulação de espécies representa a riqueza de espécies acumulada com base no número de amostras coletadas ou observações feitas até aquele ponto.
- À medida que você aumenta o número de amostras (ou seja, move-se para a direita ao longo do eixo X), a riqueza de espécies acumulada também aumenta (ou seja, move-se para cima ao longo do eixo Y).
- Inclinação da Curva:
- A inclinação da curva de acumulação de espécies é importante. Uma curva que sobe rapidamente indica que novas espécies estão sendo encontradas à medida que mais amostras são coletadas. Isso sugere que a comunidade é rica em espécies e que ainda há muitas espécies não observadas.
- Uma curva que sobe lentamente sugere que a maioria das espécies já foi observada, e a riqueza de espécies está se estabilizando. Isso indica uma comunidade menos diversa ou uma amostragem mais completa.
- Assíntota:
- A assíntota é o ponto onde a curva de acumulação de espécies começa a nivelar-se, e a adição de mais amostras tem um impacto mínimo na riqueza de espécies acumulada. A assíntota é uma estimativa da riqueza de espécies máxima que pode ser alcançada com o esforço amostral disponível.
- Interpretação:
- A interpretação da curva de acumulação de espécies depende do contexto. Se a curva ainda estiver subindo acentuadamente no ponto em que você parou de amostrar, isso sugere que a amostragem está incompleta, e mais espécies provavelmente serão encontradas com mais esforço amostral.
- Se a curva estiver nivelada e próxima de uma assíntota, isso sugere que a amostragem foi mais completa, e você pode ter uma estimativa confiável da riqueza de espécies na comunidade.
- Estimativas da Riqueza:
- A curva de acumulação de espécies pode ser usada para fazer estimativas da riqueza de espécies com base nas amostras coletadas. No entanto, lembre-se de que essas são estimativas e estão sujeitas a variações amostrais. É comum calcular intervalos de confiança ao redor dessas estimativas.
Em resumo, a curva de acumulação de espécies é uma ferramenta valiosa para entender como a riqueza de espécies aumenta com o esforço amostral em uma comunidade. A interpretação depende da inclinação da curva, da presença de uma assíntota e do contexto do estudo. Ela ajuda a responder à pergunta: “Quantas espécies diferentes podemos esperar encontrar em uma comunidade com base nas amostras que coletamos até agora?”
Agora podemos plotar uma curva de acumulação de espécies melhorada.
<- data.frame("UAs" = c(0, acumula$sites),
plot_data "Riqueza" = c(0, acumula$richness),
"lower" = c(0, acumula$richness - acumula$sd),
"upper" = c(0, acumula$richness + acumula$sd))
<- ggplot(plot_data, aes(x = UAs, y = Riqueza)) +
gLocais geom_point(color = "blue", size = 4) +
geom_line(color = "blue", lwd = 2) +
geom_ribbon(aes(ymin = lower, ymax = upper),
linetype=2, alpha=0.3, fill = "yellow") +
ylab("Riqueza acumulada") +
theme_classic() +
theme(text = element_text(size = 16))
gLocaisggsave(gLocais, dpi = 300, filename = "fig-acum.png")
## Saving 7 x 5 in image
7.12 Plot indivíduos
<- data.frame("Individuos" = c(0, acumula$individuals),
plot_data "Riqueza" = c(0, acumula$richness),
"lower" = c(0, acumula$richness - acumula$sd),
"upper" = c(0, acumula$richness + acumula$sd))
<- ggplot(plot_data, aes(x = Individuos, y = Riqueza)) +
gInd geom_point(color = "blue", size = 4) +
geom_line(color = "blue", lwd = 2) +
geom_ribbon(aes(ymin = lower, ymax = upper),
linetype=2, alpha=0.3, fill = "yellow") +
ylab("Riqueza acumulada") +
theme_classic() +
theme(text = element_text(size = 16))
gInd
Apêndices
Criando uma tabela de espécies
Nessa etapa precisaremos da tabela de grupos. Selecionamos a aba peixes
, porque nela constam os agrupamentos a-priori para os dados de peixes.
library(openxlsx)
<- read.xlsx("D:/Elvio/OneDrive/Disciplinas/_EcoNumerica/5.Matrizes/ppbio06-grupos.xlsx",
t_grps rowNames = T, colNames = T,
sheet = "peixes")
str(t_grps)
#View(ppbio)
1:4,1:4] #[1:4,1:4] mostra apenas as linhas e colunas de 1 a 4. t_grps[
## 'data.frame': 26 obs. of 4 variables:
## $ area : chr "Serido" "Serido" "Serido" "Serido" ...
## $ ambiente: chr "acude" "rio" "rio" "rio" ...
## $ UA : chr "ZA" "CC" "CT" "CP" ...
## $ coleta : num 1 1 1 1 1 2 2 2 3 3 ...
## area ambiente UA coleta
## S-A-ZA1 Serido acude ZA 1
## S-R-CC1 Serido rio CC 1
## S-R-CT1 Serido rio CT 1
## S-R-CP1 Serido rio CP 1
library(dplyr)
library(tidyr)
<- m_trab %>%
m_trab rename_with(~ gsub("-", ".", .)) #apenas troquei o hífen pelo ponto.
<- m_trab %>%
m group_by(Area = t_grps$area,
Habitat = t_grps$ambiente,
Ponto = t_grps$UA) %>%
summarise(across(where(is.numeric),
list(mean = mean, sd = sd)),
.groups = 'drop') %>%
pivot_longer(
cols = -c(Area, Habitat, Ponto),
names_to = c("Variable", ".value"),
names_sep = "_"
)
m<- as.data.frame(m)
m <- m %>%
m_wide mutate(stat_string = ifelse(
== "nome_da_variavel", #escolhe uma variável pra ter 3 casas decimais
Variable paste0(round(mean, 3), "(", round(sd, 3), ")"),
paste0(round(mean, 1), "(", round(sd, 1), ")")
%>%
)) unite("Location", Area, Habitat, Ponto, sep = "_") %>%
::select(Variable, Location, stat_string) %>% #dplyr dá conflito com MASS
dplyrpivot_wider(names_from = Location, values_from = stat_string)
m_wide<- as.data.frame(m_wide)
m_wide
m_wide
#Exportando dados para Excel----
library(openxlsx)
write.xlsx(m_wide, file = "tabela da comunidade.xlsx", rowNames = FALSE)
<- loadWorkbook("tabela da comunidade.xlsx")
wb writeData(wb, sheet = "Sheet 1", x = m_wide)
saveWorkbook(wb, "tabela da comunidade.xlsx", overwrite = TRUE)
#Escolher sumário de uma variavel----
m<- "as.bimac"
var $Variable == var, "mean"] #cada valor de var
m[msummary(m[m$Variable == var, "mean"]) #sumário dos valores de var
## # A tibble: 315 × 6
## Area Habitat Ponto Variable mean sd
## <chr> <chr> <chr> <chr> <dbl> <dbl>
## 1 Buique acude GU ap.davis 0 0
## 2 Buique acude GU as.bimac 5.25 5.74
## 3 Buique acude GU as.fasci 0.5 1
## 4 Buique acude GU ch.bimac 0 0
## 5 Buique acude GU ci.ocela 0 0
## 6 Buique acude GU ci.orien 0 0
## 7 Buique acude GU co.macro 0 0
## 8 Buique acude GU co.heter 0 0
## 9 Buique acude GU cr.menez 0 0
## 10 Buique acude GU cu.lepid 0 0
## # ℹ 305 more rows
## # A tibble: 35 × 10
## Variable Buique_acude_GU Buique_acude_MU Buique_rio_ET Buique_rio_PC Serido_acude_TA Serido_acude_ZA
## <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 ap.davis 0(0) 0(0) 0(NA) 9(11.5) 0(0) 0(NA)
## 2 as.bimac 5.2(5.7) 214.2(218.1) 3(NA) 42(34) 174.2(174.3) 1(NA)
## 3 as.fasci 0.5(1) 0(0) 0(NA) 8(8.5) 2(3.4) 0(NA)
## 4 ch.bimac 0(0) 0(0) 0(NA) 0(0) 175.5(115.2) 0(NA)
## 5 ci.ocela 0(0) 0(0) 0(NA) 2(2) 0(0) 0(NA)
## 6 ci.orien 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 7 co.macro 0(0) 0(0) 0(NA) 0(0) 0.5(1) 0(NA)
## 8 co.heter 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 9 cr.menez 0(0) 0(0) 0(NA) 0(0) 0.2(0.5) 0(NA)
## 10 cu.lepid 0(0) 0(0) 0(NA) 7(12.1) 0(0) 0(NA)
## # ℹ 25 more rows
## # ℹ 3 more variables: Serido_rio_CC <chr>, Serido_rio_CP <chr>, Serido_rio_CT <chr>
## Variable Buique_acude_GU Buique_acude_MU Buique_rio_ET Buique_rio_PC Serido_acude_TA Serido_acude_ZA
## 1 ap.davis 0(0) 0(0) 0(NA) 9(11.5) 0(0) 0(NA)
## 2 as.bimac 5.2(5.7) 214.2(218.1) 3(NA) 42(34) 174.2(174.3) 1(NA)
## 3 as.fasci 0.5(1) 0(0) 0(NA) 8(8.5) 2(3.4) 0(NA)
## 4 ch.bimac 0(0) 0(0) 0(NA) 0(0) 175.5(115.2) 0(NA)
## 5 ci.ocela 0(0) 0(0) 0(NA) 2(2) 0(0) 0(NA)
## 6 ci.orien 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 7 co.macro 0(0) 0(0) 0(NA) 0(0) 0.5(1) 0(NA)
## 8 co.heter 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 9 cr.menez 0(0) 0(0) 0(NA) 0(0) 0.2(0.5) 0(NA)
## 10 cu.lepid 0(0) 0(0) 0(NA) 7(12.1) 0(0) 0(NA)
## 11 cy.gilbe 0(0) 0(0) 0(NA) 27(46.8) 0(0) 0(NA)
## 12 ge.brasi 18(11.6) 227.8(194.3) 0(NA) 9.7(5.7) 0.2(0.5) 0(NA)
## 13 he.margi 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 14 ho.malab 0(0) 0.2(0.5) 0(NA) 1(1) 7.8(9) 0(NA)
## 15 hy.pusar 0(0) 0(0) 0(NA) 0.3(0.6) 0(0) 0(NA)
## 16 le.melan 0(0) 0(0) 0(NA) 0.7(1.2) 0(0) 0(NA)
## 17 le.piau 0(0) 0(0) 0(NA) 0.3(0.6) 0.5(1) 0(NA)
## 18 le.taeni 0(0) 0(0) 0(NA) 0.3(0.6) 0(0) 0(NA)
## 19 mo.costa 0(0) 0(0) 0(NA) 0.3(0.6) 0(0) 0(NA)
## 20 mo.lepid 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 21 or.nilot 103.8(109.4) 4.8(4.8) 8(NA) 26.3(33.5) 0.2(0.5) 0(NA)
## 22 pa.manag 138.2(104.4) 0(0) 1(NA) 0(0) 0(0) 0(NA)
## 23 pimel.sp 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 24 po.retic 0(0) 80.5(125.2) 34(NA) 0(0) 0(0) 0(NA)
## 25 po.vivip 0(0) 54.8(75.2) 0(NA) 0(0) 0(0) 0(NA)
## 26 pr.brevi 0(0) 0.2(0.5) 0(NA) 5(4.6) 1.5(1.3) 9(NA)
## 27 ps.rhomb 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 28 ps.genise 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 29 se.heter 0(0) 0(0) 0(NA) 44.7(43.2) 1(2) 0(NA)
## 30 se.piaba 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 31 se.spilo 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 32 st.noton 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 33 sy.marmo 0(0) 0(0) 0(NA) 0(0) 0(0) 0(NA)
## 34 te.chalc 0(0) 0(0) 0(NA) 44.7(39.7) 0(0) 0(NA)
## 35 tr.signa 0(0) 0(0) 0(NA) 9(12.3) 0(0) 0(NA)
## Serido_rio_CC Serido_rio_CP Serido_rio_CT
## 1 0(NA) 0(0) 0(0)
## 2 99(NA) 10(9) 135.5(94.5)
## 3 0(NA) 0.2(0.5) 30.8(33.4)
## 4 0(NA) 0(0) 0.8(1.5)
## 5 0(NA) 16(17) 0(0)
## 6 0(NA) 9.8(10.2) 26(30.2)
## 7 0(NA) 0(0) 0(0)
## 8 0(NA) 0(0) 0.2(0.5)
## 9 0(NA) 0(0) 6.8(5.6)
## 10 0(NA) 0(0) 0(0)
## 11 0(NA) 0(0) 12.5(25)
## 12 0(NA) 0(0) 1.8(1.5)
## 13 0(NA) 0(0) 0.5(0.6)
## 14 0(NA) 5.2(3.4) 13.2(13.7)
## 15 0(NA) 1(1.2) 16.5(18)
## 16 0(NA) 0(0) 0(0)
## 17 0(NA) 1.5(1.3) 1.5(1.3)
## 18 0(NA) 0(0) 0(0)
## 19 0(NA) 0(0) 0(0)
## 20 1(NA) 0(0) 10(19.3)
## 21 2(NA) 0(0) 81(42.2)
## 22 0(NA) 0(0) 0(0)
## 23 0(NA) 0(0) 1.5(3)
## 24 0(NA) 0(0) 6.2(9.5)
## 25 0(NA) 34.2(31.9) 155.5(143)
## 26 0(NA) 1.2(2.5) 60.8(72.7)
## 27 0(NA) 0(0) 0.2(0.5)
## 28 0(NA) 0(0) 0.2(0.5)
## 29 0(NA) 4.2(6.7) 35.2(23.7)
## 30 0(NA) 0(0) 17(34)
## 31 0(NA) 0(0) 0.2(0.5)
## 32 0(NA) 0(0) 51.2(49.8)
## 33 0(NA) 0.2(0.5) 0(0)
## 34 0(NA) 0(0) 0(0)
## 35 0(NA) 0(0) 45.2(64)
## Area Habitat Ponto Variable mean sd
## 1 Buique acude GU ap.davis 0.0000000 0.0000000
## 2 Buique acude GU as.bimac 5.2500000 5.7373048
## 3 Buique acude GU as.fasci 0.5000000 1.0000000
## 4 Buique acude GU ch.bimac 0.0000000 0.0000000
## 5 Buique acude GU ci.ocela 0.0000000 0.0000000
## 6 Buique acude GU ci.orien 0.0000000 0.0000000
## 7 Buique acude GU co.macro 0.0000000 0.0000000
## 8 Buique acude GU co.heter 0.0000000 0.0000000
## 9 Buique acude GU cr.menez 0.0000000 0.0000000
## 10 Buique acude GU cu.lepid 0.0000000 0.0000000
## 11 Buique acude GU cy.gilbe 0.0000000 0.0000000
## 12 Buique acude GU ge.brasi 18.0000000 11.6332856
## 13 Buique acude GU he.margi 0.0000000 0.0000000
## 14 Buique acude GU ho.malab 0.0000000 0.0000000
## 15 Buique acude GU hy.pusar 0.0000000 0.0000000
## 16 Buique acude GU le.melan 0.0000000 0.0000000
## 17 Buique acude GU le.piau 0.0000000 0.0000000
## 18 Buique acude GU le.taeni 0.0000000 0.0000000
## 19 Buique acude GU mo.costa 0.0000000 0.0000000
## 20 Buique acude GU mo.lepid 0.0000000 0.0000000
## 21 Buique acude GU or.nilot 103.7500000 109.3903561
## 22 Buique acude GU pa.manag 138.2500000 104.3595547
## 23 Buique acude GU pimel.sp 0.0000000 0.0000000
## 24 Buique acude GU po.retic 0.0000000 0.0000000
## 25 Buique acude GU po.vivip 0.0000000 0.0000000
## 26 Buique acude GU pr.brevi 0.0000000 0.0000000
## 27 Buique acude GU ps.rhomb 0.0000000 0.0000000
## 28 Buique acude GU ps.genise 0.0000000 0.0000000
## 29 Buique acude GU se.heter 0.0000000 0.0000000
## 30 Buique acude GU se.piaba 0.0000000 0.0000000
## 31 Buique acude GU se.spilo 0.0000000 0.0000000
## 32 Buique acude GU st.noton 0.0000000 0.0000000
## 33 Buique acude GU sy.marmo 0.0000000 0.0000000
## 34 Buique acude GU te.chalc 0.0000000 0.0000000
## 35 Buique acude GU tr.signa 0.0000000 0.0000000
## 36 Buique acude MU ap.davis 0.0000000 0.0000000
## 37 Buique acude MU as.bimac 214.2500000 218.0815979
## 38 Buique acude MU as.fasci 0.0000000 0.0000000
## 39 Buique acude MU ch.bimac 0.0000000 0.0000000
## 40 Buique acude MU ci.ocela 0.0000000 0.0000000
## 41 Buique acude MU ci.orien 0.0000000 0.0000000
## 42 Buique acude MU co.macro 0.0000000 0.0000000
## 43 Buique acude MU co.heter 0.0000000 0.0000000
## 44 Buique acude MU cr.menez 0.0000000 0.0000000
## 45 Buique acude MU cu.lepid 0.0000000 0.0000000
## 46 Buique acude MU cy.gilbe 0.0000000 0.0000000
## 47 Buique acude MU ge.brasi 227.7500000 194.2633522
## 48 Buique acude MU he.margi 0.0000000 0.0000000
## 49 Buique acude MU ho.malab 0.2500000 0.5000000
## 50 Buique acude MU hy.pusar 0.0000000 0.0000000
## 51 Buique acude MU le.melan 0.0000000 0.0000000
## 52 Buique acude MU le.piau 0.0000000 0.0000000
## 53 Buique acude MU le.taeni 0.0000000 0.0000000
## 54 Buique acude MU mo.costa 0.0000000 0.0000000
## 55 Buique acude MU mo.lepid 0.0000000 0.0000000
## 56 Buique acude MU or.nilot 4.7500000 4.7871355
## 57 Buique acude MU pa.manag 0.0000000 0.0000000
## 58 Buique acude MU pimel.sp 0.0000000 0.0000000
## 59 Buique acude MU po.retic 80.5000000 125.2344468
## 60 Buique acude MU po.vivip 54.7500000 75.1592753
## 61 Buique acude MU pr.brevi 0.2500000 0.5000000
## 62 Buique acude MU ps.rhomb 0.0000000 0.0000000
## 63 Buique acude MU ps.genise 0.0000000 0.0000000
## 64 Buique acude MU se.heter 0.0000000 0.0000000
## 65 Buique acude MU se.piaba 0.0000000 0.0000000
## 66 Buique acude MU se.spilo 0.0000000 0.0000000
## 67 Buique acude MU st.noton 0.0000000 0.0000000
## 68 Buique acude MU sy.marmo 0.0000000 0.0000000
## 69 Buique acude MU te.chalc 0.0000000 0.0000000
## 70 Buique acude MU tr.signa 0.0000000 0.0000000
## 71 Buique rio ET ap.davis 0.0000000 NA
## 72 Buique rio ET as.bimac 3.0000000 NA
## 73 Buique rio ET as.fasci 0.0000000 NA
## 74 Buique rio ET ch.bimac 0.0000000 NA
## 75 Buique rio ET ci.ocela 0.0000000 NA
## 76 Buique rio ET ci.orien 0.0000000 NA
## 77 Buique rio ET co.macro 0.0000000 NA
## 78 Buique rio ET co.heter 0.0000000 NA
## 79 Buique rio ET cr.menez 0.0000000 NA
## 80 Buique rio ET cu.lepid 0.0000000 NA
## 81 Buique rio ET cy.gilbe 0.0000000 NA
## 82 Buique rio ET ge.brasi 0.0000000 NA
## 83 Buique rio ET he.margi 0.0000000 NA
## 84 Buique rio ET ho.malab 0.0000000 NA
## 85 Buique rio ET hy.pusar 0.0000000 NA
## 86 Buique rio ET le.melan 0.0000000 NA
## 87 Buique rio ET le.piau 0.0000000 NA
## 88 Buique rio ET le.taeni 0.0000000 NA
## 89 Buique rio ET mo.costa 0.0000000 NA
## 90 Buique rio ET mo.lepid 0.0000000 NA
## 91 Buique rio ET or.nilot 8.0000000 NA
## 92 Buique rio ET pa.manag 1.0000000 NA
## 93 Buique rio ET pimel.sp 0.0000000 NA
## 94 Buique rio ET po.retic 34.0000000 NA
## 95 Buique rio ET po.vivip 0.0000000 NA
## 96 Buique rio ET pr.brevi 0.0000000 NA
## 97 Buique rio ET ps.rhomb 0.0000000 NA
## 98 Buique rio ET ps.genise 0.0000000 NA
## 99 Buique rio ET se.heter 0.0000000 NA
## 100 Buique rio ET se.piaba 0.0000000 NA
## 101 Buique rio ET se.spilo 0.0000000 NA
## 102 Buique rio ET st.noton 0.0000000 NA
## 103 Buique rio ET sy.marmo 0.0000000 NA
## 104 Buique rio ET te.chalc 0.0000000 NA
## 105 Buique rio ET tr.signa 0.0000000 NA
## 106 Buique rio PC ap.davis 9.0000000 11.5325626
## 107 Buique rio PC as.bimac 42.0000000 34.0440891
## 108 Buique rio PC as.fasci 8.0000000 8.5440037
## 109 Buique rio PC ch.bimac 0.0000000 0.0000000
## 110 Buique rio PC ci.ocela 2.0000000 2.0000000
## 111 Buique rio PC ci.orien 0.0000000 0.0000000
## 112 Buique rio PC co.macro 0.0000000 0.0000000
## 113 Buique rio PC co.heter 0.0000000 0.0000000
## 114 Buique rio PC cr.menez 0.0000000 0.0000000
## 115 Buique rio PC cu.lepid 7.0000000 12.1243557
## 116 Buique rio PC cy.gilbe 27.0000000 46.7653718
## 117 Buique rio PC ge.brasi 9.6666667 5.6862407
## 118 Buique rio PC he.margi 0.0000000 0.0000000
## 119 Buique rio PC ho.malab 1.0000000 1.0000000
## 120 Buique rio PC hy.pusar 0.3333333 0.5773503
## 121 Buique rio PC le.melan 0.6666667 1.1547005
## 122 Buique rio PC le.piau 0.3333333 0.5773503
## 123 Buique rio PC le.taeni 0.3333333 0.5773503
## 124 Buique rio PC mo.costa 0.3333333 0.5773503
## 125 Buique rio PC mo.lepid 0.0000000 0.0000000
## 126 Buique rio PC or.nilot 26.3333333 33.5459883
## 127 Buique rio PC pa.manag 0.0000000 0.0000000
## 128 Buique rio PC pimel.sp 0.0000000 0.0000000
## 129 Buique rio PC po.retic 0.0000000 0.0000000
## 130 Buique rio PC po.vivip 0.0000000 0.0000000
## 131 Buique rio PC pr.brevi 5.0000000 4.5825757
## 132 Buique rio PC ps.rhomb 0.0000000 0.0000000
## 133 Buique rio PC ps.genise 0.0000000 0.0000000
## 134 Buique rio PC se.heter 44.6666667 43.1547603
## 135 Buique rio PC se.piaba 0.0000000 0.0000000
## 136 Buique rio PC se.spilo 0.0000000 0.0000000
## 137 Buique rio PC st.noton 0.0000000 0.0000000
## 138 Buique rio PC sy.marmo 0.0000000 0.0000000
## 139 Buique rio PC te.chalc 44.6666667 39.7156560
## 140 Buique rio PC tr.signa 9.0000000 12.2882057
## 141 Serido acude TA ap.davis 0.0000000 0.0000000
## 142 Serido acude TA as.bimac 174.2500000 174.3413797
## 143 Serido acude TA as.fasci 2.0000000 3.3665016
## 144 Serido acude TA ch.bimac 175.5000000 115.2171862
## 145 Serido acude TA ci.ocela 0.0000000 0.0000000
## 146 Serido acude TA ci.orien 0.0000000 0.0000000
## 147 Serido acude TA co.macro 0.5000000 1.0000000
## 148 Serido acude TA co.heter 0.0000000 0.0000000
## 149 Serido acude TA cr.menez 0.2500000 0.5000000
## 150 Serido acude TA cu.lepid 0.0000000 0.0000000
## 151 Serido acude TA cy.gilbe 0.0000000 0.0000000
## 152 Serido acude TA ge.brasi 0.2500000 0.5000000
## 153 Serido acude TA he.margi 0.0000000 0.0000000
## 154 Serido acude TA ho.malab 7.7500000 9.0323493
## 155 Serido acude TA hy.pusar 0.0000000 0.0000000
## 156 Serido acude TA le.melan 0.0000000 0.0000000
## 157 Serido acude TA le.piau 0.5000000 1.0000000
## 158 Serido acude TA le.taeni 0.0000000 0.0000000
## 159 Serido acude TA mo.costa 0.0000000 0.0000000
## 160 Serido acude TA mo.lepid 0.0000000 0.0000000
## 161 Serido acude TA or.nilot 0.2500000 0.5000000
## 162 Serido acude TA pa.manag 0.0000000 0.0000000
## 163 Serido acude TA pimel.sp 0.0000000 0.0000000
## 164 Serido acude TA po.retic 0.0000000 0.0000000
## 165 Serido acude TA po.vivip 0.0000000 0.0000000
## 166 Serido acude TA pr.brevi 1.5000000 1.2909944
## [ reached 'max' / getOption("max.print") -- omitted 149 rows ]
## [1] 5.25 214.25 3.00 42.00 174.25 1.00 99.00 10.00 135.50
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 5.25 42.00 76.03 135.50 214.25
Descritores da estrutura da comunidade: UA’s
Sum, soma; mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; S, riqueza (ou frequência de ocorrência na matriz transposta); E, índice de equitabilidade de Pielou (Pielou 1975); H, índice de diversidade de Shannon (Ludwig and Reynolds 1988); D, índice de diversidade de Simpson (Hurlbert 1971).
#Matriz transposta
<- t(m_trab) #transpõe a matriz de volta para comunitaria
m_trab <- rowSums(m_trab)
Sum <- apply(m_trab,1,sum)
Sum <- rowMeans(m_trab)
Mean <- apply(m_trab,1,mean)
Mean <- apply(m_trab,1,sd)
DP <- apply(m_trab,1,max)
Max <- apply(m_trab,1,min)
Min #library(vegan)
<- decostand(m_trab,"pa")
bin <- apply(bin,1,sum)
S <- specnumber(m_trab)
Riqueza <- specnumber(colSums(m_trab))
Riqueza_total <- diversity(m_trab)
H <- diversity(m_trab, "simpson")
D is.na(D)] <- 0 #substitui NA ou NaN por 0
D[<- H/log(specnumber(m_trab))
E is.na(E)] <- 0 #substitui NA ou NaN por 0
E[#library(moments)
<- apply(m_trab,1,skewness)
Assimetria <- apply(m_trab,1,kurtosis)
Curtose <- t(m_trab) #traz de volta
m_trab <- cbind(Sum, Mean, DP, Max, Min, S, E, H, D)
Descritores1 <- as.data.frame(Descritores1)
Descritores1
Descritores1#Descritores1 <- Descritores1 %>% rownames_to_column(var="UA´s") #da nome a primeira coluna
<- apply(Descritores1,2,sum)
SomaTotalD
SomaTotalD<- apply(Descritores1,2,mean)
MediaTotalD
MediaTotalD<- apply(Descritores1,2,sd)
DPTotalD
DPTotalD<- cbind(SomaTotalD, MediaTotalD, DPTotalD)
Descritores2 <- as.data.frame(Descritores2)
Descritores2 <- t(Descritores2)
Descritores2
Descritores2<- rbind(Descritores1, Descritores2)
DescritoresFinal
DescritoresFinal<- round (DescritoresFinal, 2)
DescritoresFinal #Fazendo uma tabela
#library(gt)
<- DescritoresFinal
df ncol(df); nrow(df) #no. de N colunas x M linhas
<- cbind(UA = rownames(df), df)
df gt(df, caption = "Descritores da diversidade por Unidade Amostral (UA). Sum, soma; mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; S, riqueza (ou frequência de ocorrência na matriz transposta); E, índice de equitabilidade de Pielou; H, índice de diversidade de Shannon; D, índice de diversidade de Simpson.")
Descritores da normalidade
<- cbind(Assimetria, Curtose)
Normalidade1 <- as.data.frame(Normalidade1)
Normalidade1 <- na.omit(Normalidade1) #remove NA e NaN
Normalidade1
Normalidade1<- apply(Normalidade1,2,sum)
SomaTotalN
SomaTotalN<- apply(Normalidade1,2,mean)
MediaTotalN
MediaTotalN<- apply(Normalidade1,2,sd)
DPTotalN
DPTotalN<-cbind(SomaTotalN, MediaTotalN, DPTotalN)
Normalidade2<-as.data.frame(Normalidade2)
Normalidade2<- t(Normalidade2) #"t" transpoe a matriz
Normalidade2
Normalidade2<- rbind(Normalidade1, Normalidade2)
NormalidadeFinal
NormalidadeFinal<- round(NormalidadeFinal, 2)
NormalidadeFinal #Fazendo uma tabela
<- NormalidadeFinal
nf ncol(nf); nrow(nf) #no. de N colunas x M linhas
<- cbind(UA = rownames(nf), nf)
nf gt(nf, caption = "Descritores da normalidade por Unidade Amostral (UA)")
A função fix(nome da matriz)
dá acesso ao grid da matriz criada para manipulação dos dados numéricos.
Salvando as tabelas criadas em txt direto no diretório de trabalho
write.table(data.frame("Spp"=rownames(DescritoresFinal),
DescritoresFinal),"DescritoresUA.csv",
row.names=FALSE,
sep="\t")
write.table(data.frame("Spp"=rownames(NormalidadeFinal),
NormalidadeFinal),"NormalidadeUA.txt",
row.names=FALSE,
sep="\t")
Script limpo
Aqui apresento o scrip na íntegra sem os textos ou outros comentários. Você pode copiar e colar no R para executa-lo. Lembre de remover os #
ou ##
caso necessite executar essas linhas.
## dev.off() #apaga os graficos, se houver algum
## rm(list=ls(all=TRUE)) #limpa a memória
## cat("\014") #limpa o console
## install.packages("vegan")
## install.packages("moments")
## install.packages("ggplot2")
## install.packages("dplyr")
## install.packages("tidyr")
## install.packages("tibble")
## install.packages("tidyverse") #atente para alguma msg de erro qdo executar essa linha
## install.packages("forcats")
## install.packages("iNEXT")
## install.packages("openxlsx")
## install.packages("gt")
## library(tibble); library(tidyverse); library(forcats); library(openxlsx); library(Rcpp)
## getwd()
## setwd("C:/Seu/Diretório/De/Trabalho")
#dir <- getwd() #criamos um vetor com o diretório de trbalho
#shell.exec(dir) #abre o diretorio de trabalho no Windows Explorer
<- read.xlsx("D:/Elvio/OneDrive/Disciplinas/_EcoNumerica/5.Matrizes/ppbio06.xlsx",
ppbio rowNames = T, colNames = T,
sheet = "Sheet1")
str(ppbio)
#View(ppbio)
1:5,1:5] #[1:5,1:5] mostra apenas as linhas e colunas de 1 a 5.
ppbio[## #View(ppbio)
## print(ppbio[1:8,1:8])
## ppbio[1:10,1:10]
## str(ppbio)
## mode(ppbio)
## class(ppbio)
<- ppbio
m_trab <- t(ppbio)
m_trab str(m_trab)
#View(m_trab)
m_trabprint(m_trab[1:5,1:5])
1:5,1:5]
m_trab[str(m_trab)
mode(m_trab)
class(m_trab)
range(m_trab) #menor e maior valores
length(m_trab) #no. de colunas
ncol(m_trab) #no. de N colunas
nrow(m_trab) #no. de M linhas
sum(lengths(m_trab)) #soma os nos. de colunas
length(as.matrix(m_trab)) #tamanho da matriz m x n
sum(m_trab == 0) #número de observações igual a zero
sum(m_trab > 0) #número de observações maiores que zero
#calculando a proporção de zeros na matriz
<- (sum(m_trab == 0)/length(as.matrix(m_trab)))*100
zeros
zeros<- data.frame(
tamanho = c("range", "lenght", "n cols", "m linhas", "Tamanho", "Tamanho",
Função "Zeros", "Nao zeros", "% Zeros"),
Resultado = c(paste(range(m_trab), collapse = " - "),
length(m_trab), ncol(m_trab),
nrow(m_trab), sum(lengths(m_trab)),
length(as.matrix(m_trab)), sum(m_trab == 0),
sum(m_trab > 0), round(zeros, 1)))
tamanho::kable(tamanho, format = "markdown", caption = "Resumo das informações sobre o tamanho da base de dados.")
knitr#?apply
<- rowSums(m_trab)
Sum #ou
<- apply(m_trab,1,sum)
Sum
Sum## Media
<- rowMeans(m_trab)
Mean
Mean## Ou
<- apply(m_trab,1,mean)
Mean
Mean## Desvio padrão
<- apply(m_trab,1,sd)
DP
DP## Máximo
<- apply(m_trab,1,max)
Max
Max ## Mínimo
<- apply(m_trab,1,min)
Min
Minlibrary(vegan)
<- decostand(m_trab,"pa")
bin 1:10, 1:10]
bin[<- apply(bin,1,sum)
S
S#OU
<- specnumber(m_trab)
Riqueza
Riqueza<- specnumber(colSums(m_trab))
Riqueza_total
Riqueza_total<- diversity(m_trab, index = "shannon")
H
H<- diversity(m_trab, "simpson")
D
Dis.na(D)] <- 0 #substitui NA ou NaN por 0
D[
D<- H/log(specnumber(m_trab))
E
Eis.na(E)] <- 0 #substitui NA ou NaN por 0
E[
Elibrary(moments)
<- apply(m_trab,1,skewness)
Assimetria
Assimetria<- apply(m_trab,1,kurtosis)
Curtose
Curtose<- cbind(Sum, Mean, DP, Max, Min, S, E, H, D)
Descritores1 <- as.data.frame(Descritores1)
Descritores1
Descritores1#Descritores1 <- Descritores1 %>% rownames_to_column(var="Espécies") #da nome a primeira coluna
<- apply(Descritores1,2,sum)
SomaTotalD
SomaTotalD<- apply(Descritores1,2,mean)
MediaTotalD
MediaTotalD<- apply(Descritores1,2,sd)
DPTotalD
DPTotalD<- cbind(SomaTotalD, MediaTotalD, DPTotalD)
Descritores2 <- as.data.frame(Descritores2)
Descritores2 <- t(Descritores2)
Descritores2
Descritores2<- rbind(Descritores1, Descritores2)
DescritoresFinal
DescritoresFinal<- round (DescritoresFinal, 2)
DescritoresFinal
DescritoresFinal#Fazendo uma tabela
library(gt)
<- DescritoresFinal
df ncol(df); nrow(df) #no. de N colunas x M linhas
<- cbind(Spp = rownames(df), df)
df gt(df, rowname_col = "Espécie", caption = "Descritores da diversidade por espécie (colunas). Sum, soma; mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; S, riqueza (ou frequência de ocorrência na matriz transposta); E, índice de equitabilidade de Pielou; H, índice de diversidade de Shannon; D, índice de diversidade de Simpson.")
<- cbind(Assimetria, Curtose)
Normalidade1 <- as.data.frame(Normalidade1)
Normalidade1
Normalidade1<- apply(Normalidade1,2,sum)
SomaTotalN
SomaTotalN<- apply(Normalidade1,2,mean)
MediaTotalN
MediaTotalN<- apply(Normalidade1,2,sd)
DPTotalN
DPTotalN<-cbind(SomaTotalN, MediaTotalN, DPTotalN)
Normalidade2<-as.data.frame(Normalidade2)
Normalidade2<- t(Normalidade2) #"t" transpoe a matriz
Normalidade2
Normalidade2<- rbind(Normalidade1, Normalidade2)
NormalidadeFinal
NormalidadeFinal<- round(NormalidadeFinal, 2)
NormalidadeFinal
NormalidadeFinal#Fazendo uma tabela
<- NormalidadeFinal
nf ncol(nf); nrow(nf) #no. de N colunas x M linhas
<- cbind(Spp = rownames(nf), nf)
nf gt(nf, rowname_col = "Espécie", caption = "Descritores da normalidade por espécie (coluna)")
write.table(data.frame("Spp"=rownames(DescritoresFinal),
DescritoresFinal),"DescritoresSPP.txt",
row.names=FALSE,
sep="\t")
write.table(data.frame("Spp"=rownames(NormalidadeFinal),
NormalidadeFinal),"NormalidadeSPP.txt",
row.names=FALSE,
sep="\t")
<- ppbio
m_trab
m_trab<- renyi(m_trab,
Hill scales = c(0:5),
hill = TRUE)
Hilllibrary(ggplot2)
library(tidyr)
library(tidyverse)
<- Hill %>%
grafico1 rownames_to_column() %>%
pivot_longer(-rowname) %>%
mutate(name = factor(name, name[1:length(Hill)])) %>%
ggplot(aes(x = name, y = value, group = rowname,
col = rowname)) +
geom_point(size = 2) +
geom_line(size = 1) +
xlab("Parâmetro de ordem de diversidade (q)") +
ylab("Diversidade") +
labs(col = "Locais") +
theme_bw() +
theme(text = element_text(size = 5)) #ajustar a fonte caso nao caiba no output html
grafico1ggsave(grafico1, dpi = 300, filename = "fig-hill.png")
<- colSums(m_trab)
abund #abund <- m_trab[1, ] #escolhe a primeira linha para a distribuição de abundância
<- data.frame(sp = colnames(m_trab),
df abun = abund)
<- ggplot(df, aes(fct_reorder(sp, -abun),
grafico2 group = 1)) +
abun, geom_col() +
geom_line(col = "red", linetype = "dashed") +
geom_point(col = "red") +
xlab("Espécies") +
ylab("Abundância") +
theme_bw() +
theme(axis.text.x = element_text(
angle = 45,
hjust = 1,
face = "italic"))
grafico2ggsave(grafico2, dpi = 300, filename = "fig-abun.png")
<- mutate(m_trab, across(everything(), ceiling)) #arredonda a matriz original para números inteiros
m_trab_r colnames(t(m_trab_r))
<- t(m_trab_r[c("S-R-CT2","S-R-CP2","S-A-TA2","B-A-MU2"),]) #curva de rarefação para os sítios especificados
rarefa class(m_trab)
## Curva de rarefação para todos os sítios
#rarefa <- t(m_trab_r)
## Curva de rarefação para as 8 UA's com maior soma
#m_trab_r <- as.data.frame(t(m_trab_r)) #transpõe a matriz
#col_sums <- colSums(m_trab_r)
#largest_columns <- names(sort(col_sums, decreasing = TRUE)[1:8])
#rarefa <- m_trab_r[largest_columns] #curva de rarefação para as 8 UA's com maior soma
library(iNEXT)
<- iNEXT(rarefa, q = 0,
out datatype = "abundance",
size = NULL,
endpoint = 1500, #define o comprimento de eixo x
knots = 40,
se = TRUE,
conf = 0.95,
nboot = 50)
<- ggiNEXT(out, type = 1, facet.var="None") +
grafico3 theme_bw() +
labs(fill = "Áreas") +
xlab("Número de indivíduos") +
ylab("Riqueza de espécies") +
theme(legend.title=element_blank()) #ver como fica com facet.var="Assemblage"
grafico3ggsave(grafico3, dpi = 300, filename = "fig-rare1.png")
<- specaccum(m_trab,
acumula method = "random")
acumulaplot(acumula)
<- data.frame("UAs" = c(0, acumula$sites),
plot_data "Riqueza" = c(0, acumula$richness),
"lower" = c(0, acumula$richness - acumula$sd),
"upper" = c(0, acumula$richness + acumula$sd))
<- ggplot(plot_data, aes(x = UAs, y = Riqueza)) +
gLocais geom_point(color = "blue", size = 4) +
geom_line(color = "blue", lwd = 2) +
geom_ribbon(aes(ymin = lower, ymax = upper),
linetype=2, alpha=0.3, fill = "yellow") +
ylab("Riqueza acumulada") +
theme_classic() +
theme(text = element_text(size = 16))
gLocais<- data.frame("Individuos" = c(0, acumula$individuals),
plot_data "Riqueza" = c(0, acumula$richness),
"lower" = c(0, acumula$richness - acumula$sd),
"upper" = c(0, acumula$richness + acumula$sd))
<- ggplot(plot_data, aes(x = Individuos, y = Riqueza)) +
gInd geom_point(color = "blue", size = 4) +
geom_line(color = "blue", lwd = 2) +
geom_ribbon(aes(ymin = lower, ymax = upper),
linetype=2, alpha=0.3, fill = "yellow") +
ylab("Riqueza acumulada") +
theme_classic() +
theme(text = element_text(size = 16))
gInd#Matriz transposta
<- t(m_trab) #transpõe a matriz
m_trab <- rowSums(m_trab)
Sum <- apply(m_trab,1,sum)
Sum <- rowMeans(m_trab)
Mean <- apply(m_trab,1,mean)
Mean <- apply(m_trab,1,sd)
DP <- apply(m_trab,1,max)
Max <- apply(m_trab,1,min)
Min #library(vegan)
<- decostand(m_trab,"pa")
bin <- apply(bin,1,sum)
S <- specnumber(m_trab)
Riqueza <- specnumber(colSums(m_trab))
Riqueza_total <- diversity(m_trab)
H <- diversity(m_trab, "simpson")
D is.na(D)] <- 0 #substitui NA ou NaN por 0
D[<- H/log(specnumber(m_trab))
E is.na(E)] <- 0 #substitui NA ou NaN por 0
E[#library(moments)
<- apply(m_trab,1,skewness)
Assimetria <- apply(m_trab,1,kurtosis)
Curtose <- t(m_trab) #traz de volta
m_trab <- cbind(Sum, Mean, DP, Max, Min, S, E, H, D)
Descritores1 <- as.data.frame(Descritores1)
Descritores1
Descritores1#Descritores1 <- Descritores1 %>% rownames_to_column(var="Espécies") #da nome a primeira coluna
<- apply(Descritores1,2,sum)
SomaTotalD
SomaTotalD<- apply(Descritores1,2,mean)
MediaTotalD
MediaTotalD<- apply(Descritores1,2,sd)
DPTotalD
DPTotalD<- cbind(SomaTotalD, MediaTotalD, DPTotalD)
Descritores2 <- as.data.frame(Descritores2)
Descritores2 <- t(Descritores2)
Descritores2
Descritores2<- rbind(Descritores1, Descritores2)
DescritoresFinal
DescritoresFinal<- round (DescritoresFinal, 2)
DescritoresFinal #Fazendo uma tabela
#library(gt)
<- DescritoresFinal
df ncol(df); nrow(df) #no. de N colunas x M linhas
<- cbind(UA = rownames(df), df)
df gt(df, caption = "Descritores da diversidade por Unidade Amostral (UA). Sum, soma; mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; S, riqueza (ou frequência de ocorrência na matriz transposta); E, índice de equitabilidade de Pielou; H, índice de diversidade de Shannon; D, índice de diversidade de Simpson.")
<- cbind(Assimetria, Curtose)
Normalidade1 <- as.data.frame(Normalidade1)
Normalidade1 <- na.omit(Normalidade1) #remove NA e NaN
Normalidade1
Normalidade1<- apply(Normalidade1,2,sum)
SomaTotalN
SomaTotalN<- apply(Normalidade1,2,mean)
MediaTotalN
MediaTotalN<- apply(Normalidade1,2,sd)
DPTotalN
DPTotalN<-cbind(SomaTotalN, MediaTotalN, DPTotalN)
Normalidade2<-as.data.frame(Normalidade2)
Normalidade2<- t(Normalidade2) #"t" transpoe a matriz
Normalidade2
Normalidade2<- rbind(Normalidade1, Normalidade2)
NormalidadeFinal
NormalidadeFinal<- round(NormalidadeFinal, 2)
NormalidadeFinal #Fazendo uma tabela
<- NormalidadeFinal
nf ncol(nf); nrow(nf) #no. de N colunas x M linhas
<- cbind(UA = rownames(nf), nf)
nf gt(nf, caption = "Descritores da normalidade por Unidade Amostral (UA)")
write.table(data.frame("Spp"=rownames(DescritoresFinal),
DescritoresFinal),"DescritoresUA.csv",
row.names=FALSE,
sep="\t")
write.table(data.frame("Spp"=rownames(NormalidadeFinal),
NormalidadeFinal),"NormalidadeUA.txt",
row.names=FALSE,
sep="\t")