12 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).
12.1 Sobre os dados
Usaremos para esse tutorial dados coletados no Programa de Pesquisa em Biodiversidade - PPBio (Veja Programa de Pesquisa em Biodiversidade – PPBio). Parte desses dados está armazenada na planilha de Excel ppbio**.xlsx
. Essa planilha contém os dados de espécies de peixes dstribuidas em diversas unidades amostrais (UA’s ou sítios) (Figura 12.1). 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 (Tabela 12.1).
Arquivo (.xlsx) | Tipo de matriz | Descrição | Tipo de dados |
---|---|---|---|
ppbio06c | Matriz comunitária | O arquivo ppbio06 traz os dados brutos que serão usados nas análises. A matriz de dados brutos contendo 26 localidades em estações do ano diferentes (objetos) x 35 espécies (atributos), antes de qualquer modificação. | Contagens de indivíduos com alta amplitude de variação, sugerido uso de matriz relativizada. |
ppbio06h | Matriz ambiental | O arquivo ppbio06h traz os dados brutos que serão usados nas análises. A matriz de dados brutos contendo 26 localidades em estações diferentes (objetos) x 35 variáveis ambienteis (atributos) medidas em diferentes escalas espaciais, antes de qualquer modificação. | Unidades de medição diferentes (cm, m, °C, mg/L, etc.), com uma alta amplitude de variação, sugerido uso de matriz transformada e/ou reescalada. |
ppbio06 | Matriz comunitária | O arquivo ppbio06 traz os dados brutos que serão usados nessa análise. A matriz de dados brutos contendo 26 locais/ocasiões (objetos) x 35 espécies (atributos), antes de qualquer modificação. | Contagens de indivíduos com alta amplitude de variação, sugerido uso de matriz relativizada. |
ppbio06cpue | Matriz comunitária | O arquivo ppbio06cpue traz os valores depois de terem sidos ajustados pela Captura Por Unidade de Esforço (CPUE), onde o número de indivíduos de cada espécie em uma determinada UA é dividido pelo esforço de captura daquela UA. Isso significa que os dados foram relativizados pela CPUE. A matriz de dados brutos contendo 26 localidades em estações do ano diferentes (objetos) x 35 espécies (atributos), antes de qualquer modificação. | Densidades de indivíduos (no. de indivíduos por Unidade de Esforço de Captura) com alta amplitude de variação, sugerido uso de matriz relativizada. |
A planilha ppbio
contém o delineamento amostral de um dos estudos do Projeto PPBio (Figura 12.2. Nas linhas são apresentadas as abreviações dos nomes das unidades amostrais (UA’s) e nas colunas são apresentados os nomes abreviados das espécies - temos portando uma matriz comunitária (Tabela 12.1). No corpo da planilha temos os valores para o tipo de dados amostrado. Quantitativo, semi-quatitativo ou qualitativo.
Qual desses tipos de dados você acha que é apresentado na planilha?
Várias das espécies nessa matriz tem grande importância ecológica, como é o caso de Astyanax bimaculatus [^A etimologia do gênero Astyanax vem da mitologia Grega. Heitor personagem da “Ilíada”, tinha um filho chamado Astíanax] (Figura 12.3), que é muito comum em rios intermitentes e serve de alimento para predadores maiores como a espécie Hoplias malabaricus [^Do Grego, hoplon, arma ou armadura, em referência aos dentes caniniformes muito desenvolvidos, e forte estrutura óssea na cabeça.] (Figura 12.4).
12.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")
12.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.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)
12.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 12.1).
Abreviações
No interesse de sistematizar o código R das várias matrizes que são comumente usadas em uma AMD, a tabela a seguir (@ref(tab:241m_2)) resume seus tipos e abreviações.
Nome | Atributos (colunas) | Abreviação no R |
---|---|---|
Matriz comunitaria | Os atributos são táxons ou OTU’s (Unidades Taxonômicas Operacionais) (ex. espécies, gêneros, morfotipos) | m_com |
Matriz ambiental | Os atributos são dados ambientais e variáveis físicas e químicas (ex. pH, condutividade, temperatura) | m_amb |
Matriz de habitat | Os atributos são elementos da estrutura do habitat (ex. macróficas, algas, pedras, lama, etc) | m_hab |
Matriz bruta | Os atributos ainda não receberam nenhum tipo de tratamento estatísco (valores brutos, como coletados) | m_bruta |
Matriz transposta | Os atributos foram transpostos para as linhas | m_t |
Matriz relativizada | Os atributos foram relativizados por um critério de tamanho ou de variação (ex. dividir os valores de cada coluna pela soma) | m_rel, m_relcol, m_rellin |
Matriz transformada | Foi aplicado um operador matemático a todos os atributos (ex. raiz quadrada, log) | m_trns, m_log10, m_asrq |
Matriz de distâncias | Matriz de m x m similaridades ou de distâncias (ex. Euclidiana, Manhattan, Bray-Curtis, etc) | m_dists, m_euclid, m_bray |
Matriz de trabalho | Qualquer matriz que seja o foco da análise atual (ex. comunitária, relativizada, etc) | m_trab |
Matriz particionada | Foram removidas linhas ou colunas (ex. linhas que são outliers e espécies zeradas) | m_part |
Base de dados | Arquivo do Excel planilhado a partir de dados de campo ou de laboratório. Será manejada e particionada no R, para criar a Matriz bruta | ppbio06.xlsx, zoorebio.xlsx, bentos06.xlsx |
12.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
## ap-davis 0 0 0 0 0 0 0 0 0
## as-bimac 1 99 194 19 23 142 5 46 206
## as-fasci 0 0 55 0 1 3 1 0 64
## ch-bimac 0 0 0 0 13 3 0 178 0
## ci-ocela 0 0 0 0 0 0 40 0 0
## ci-orien 0 0 5 0 0 69 9 0 25
## co-macro 0 0 0 0 0 0 0 0 0
## co-heter 0 0 1 0 0 0 0 0 0
## cr-menez 0 0 14 0 0 4 0 0 8
## cu-lepid 0 0 0 0 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 0 0 0 0
## ge-brasi 0 0 3 0 0 0 0 0 1
## he-margi 0 0 0 0 0 1 0 0 0
## ho-malab 0 0 1 5 0 17 10 2 31
## hy-pusar 0 0 9 2 0 43 2 0 11
## le-melan 0 0 0 0 0 0 0 0 0
## le-piau 0 0 3 0 0 1 3 0 2
## le-taeni 0 0 0 0 0 0 0 0 0
## mo-costa 0 0 0 0 0 0 0 0 0
## mo-lepid 0 1 39 0 0 1 0 0 0
## or-nilot 0 2 36 0 0 77 0 0 138
## pa-manag 0 0 0 0 0 0 0 0 0
## pimel-sp 0 0 6 0 0 0 0 0 0
## po-retic 0 0 0 0 0 20 0 0 5
## po-vivip 0 0 47 15 0 221 32 0 326
## pr-brevi 9 0 5 0 1 15 5 2 164
## ps-rhomb 0 0 0 0 0 0 0 0 1
## ps-genise 0 0 0 0 0 0 0 0 1
## se-heter 0 0 40 14 4 60 0 0 38
## se-piaba 0 0 68 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 1
## st-noton 0 0 1 0 0 25 0 0 115
## sy-marmo 0 0 0 0 0 0 1 0 0
## te-chalc 0 0 0 0 0 0 0 0 0
## tr-signa 0 0 18 0 0 15 0 0 7
## S-R-CP3 S-A-TA3 S-R-CT4 S-R-CP4 S-A-TA4 B-A-MU1 B-R-ET1 B-A-GU1 B-R-PC2
## ap-davis 0 0 0 0 0 0 0 0 5
## as-bimac 16 234 0 0 394 12 3 2 44
## as-fasci 0 7 1 0 0 0 0 2 0
## ch-bimac 0 238 0 0 273 0 0 0 0
## ci-ocela 13 0 0 11 0 0 0 0 2
## ci-orien 24 0 5 6 0 0 0 0 0
## co-macro 0 2 0 0 0 0 0 0 0
## co-heter 0 0 0 0 0 0 0 0 0
## cr-menez 0 0 1 0 1 0 0 0 0
## cu-lepid 0 0 0 0 0 0 0 0 0
## cy-gilbe 0 0 50 0 0 0 0 0 0
## ge-brasi 0 0 3 0 1 190 0 7 8
## he-margi 0 0 1 0 0 0 0 0 0
## ho-malab 4 20 4 2 9 0 0 0 0
## hy-pusar 0 0 3 0 0 0 0 0 0
## le-melan 0 0 0 0 0 0 0 0 2
## le-piau 1 0 0 2 2 0 0 0 0
## le-taeni 0 0 0 0 0 0 0 0 1
## mo-costa 0 0 0 0 0 0 0 0 0
## mo-lepid 0 0 0 0 0 0 0 0 0
## or-nilot 0 0 73 0 1 6 8 3 5
## pa-manag 0 0 0 0 0 0 1 11 0
## pimel-sp 0 0 0 0 0 0 0 0 0
## po-retic 0 0 0 0 0 0 34 0 0
## po-vivip 10 0 28 80 0 0 0 0 0
## pr-brevi 0 0 59 0 3 0 0 0 9
## ps-rhomb 0 0 0 0 0 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0 0
## se-heter 0 0 3 3 0 0 0 0 10
## se-piaba 0 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 0
## st-noton 0 0 64 0 0 0 0 0 0
## sy-marmo 0 0 0 0 0 0 0 0 0
## te-chalc 0 0 0 0 0 0 0 0 76
## tr-signa 0 0 141 0 0 0 0 0 23
## 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 22 0 0 0 0 0
## as-bimac 99 0 75 511 6 7 235 13
## as-fasci 0 0 7 0 0 17 0 0
## ch-bimac 0 0 0 0 0 0 0 0
## ci-ocela 0 0 4 0 0 0 0 0
## ci-orien 0 0 0 0 0 0 0 0
## co-macro 0 0 0 0 0 0 0 0
## co-heter 0 0 0 0 0 0 0 0
## cr-menez 0 0 0 0 0 0 0 0
## cu-lepid 0 0 21 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 81 0 0
## ge-brasi 67 23 16 145 32 5 509 10
## he-margi 0 0 0 0 0 0 0 0
## ho-malab 1 0 2 0 0 1 0 0
## hy-pusar 0 0 1 0 0 0 0 0
## le-melan 0 0 0 0 0 0 0 0
## le-piau 0 0 0 0 0 1 0 0
## le-taeni 0 0 0 0 0 0 0 0
## mo-costa 0 0 1 0 0 0 0 0
## mo-lepid 0 0 0 0 0 0 0 0
## or-nilot 1 36 65 11 247 9 1 129
## pa-manag 0 102 0 0 250 0 0 190
## pimel-sp 0 0 0 0 0 0 0 0
## po-retic 10 0 0 46 0 0 266 0
## po-vivip 8 0 0 48 0 0 163 0
## pr-brevi 0 0 6 1 0 0 0 0
## ps-rhomb 0 0 0 0 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0
## se-heter 0 0 93 0 0 31 0 0
## se-piaba 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0
## st-noton 0 0 0 0 0 0 0 0
## sy-marmo 0 0 0 0 0 0 0 0
## te-chalc 0 0 58 0 0 0 0 0
## tr-signa 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"
12.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 12.2).
## 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.
12.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.
12.6.1 Variabilidade
Primeiro a variabilidade estatística
#?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
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
## 27 2386 158 705 70 143 2 1
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 28 21 131 1020 2 109 71 2
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 15 1 1 41 848 554 6 381
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 978 279 1 1 296 68 1 205
## sy-marmo te-chalc tr-signa
## 1 134 208
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien
## 1.03846154 91.76923077 6.07692308 27.11538462 2.69230769 5.50000000
## co-macro co-heter cr-menez cu-lepid cy-gilbe ge-brasi
## 0.07692308 0.03846154 1.07692308 0.80769231 5.03846154 39.23076923
## he-margi ho-malab hy-pusar le-melan le-piau le-taeni
## 0.07692308 4.19230769 2.73076923 0.07692308 0.57692308 0.03846154
## mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 0.03846154 1.57692308 32.61538462 21.30769231 0.23076923 14.65384615
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba
## 37.61538462 10.73076923 0.03846154 0.03846154 11.38461538 2.61538462
## se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.03846154 7.88461538 0.03846154 5.15384615 8.00000000
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien
## 1.03846154 91.76923077 6.07692308 27.11538462 2.69230769 5.50000000
## co-macro co-heter cr-menez cu-lepid cy-gilbe ge-brasi
## 0.07692308 0.03846154 1.07692308 0.80769231 5.03846154 39.23076923
## he-margi ho-malab hy-pusar le-melan le-piau le-taeni
## 0.07692308 4.19230769 2.73076923 0.07692308 0.57692308 0.03846154
## mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 0.03846154 1.57692308 32.61538462 21.30769231 0.23076923 14.65384615
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba
## 37.61538462 10.73076923 0.03846154 0.03846154 11.38461538 2.61538462
## se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.03846154 7.88461538 0.03846154 5.15384615 8.00000000
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien
## 4.3861671 132.4348316 16.2035134 75.8732242 8.2982853 14.6184815
## co-macro co-heter cr-menez cu-lepid cy-gilbe ge-brasi
## 0.3922323 0.1961161 3.1486261 4.1184388 18.3313519 106.3478473
## he-margi ho-malab hy-pusar le-melan le-piau le-taeni
## 0.2717465 7.6053625 8.6605205 0.3922323 0.9868364 0.1961161
## mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 0.1961161 7.6376597 59.1452970 62.3928004 1.1766968 52.5242362
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba
## 79.5004790 33.3892889 0.1961161 0.1961161 22.9905666 13.3358972
## se-spilo st-noton sy-marmo te-chalc tr-signa
## 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
## 22 511 64 273 40 69 2 1
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 14 21 81 509 1 31 43 2
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 3 1 1 39 247 250 6 266
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 326 164 1 1 93 68 1 115
## sy-marmo te-chalc tr-signa
## 1 76 141
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 0 0 0 0 0 0 0 0
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 0 0 0 0 0 0 0 0
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 0 0 0 0 0 0 0 0
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 0 0 0 0 0 0 0 0
## sy-marmo te-chalc tr-signa
## 0 0 0
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 5 1 1 3 2 5 2 1
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 1 21 50 1 1 1 1 2
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 1 1 1 1 1 1 6 5
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 8 1 1 1 3 68 1 1
## sy-marmo te-chalc tr-signa
## 1 58 4
12.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
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 2 23 10 5 5 7 1 1
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 5 1 2 15 2 14 7 1
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 8 1 1 3 18 5 1 6
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 11 12 1 1 10 1 1 4
## sy-marmo te-chalc tr-signa
## 1 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
## ap-davis 0 0 0 0 0 0 0 0 0
## as-bimac 1 1 1 1 1 1 1 1 1
## as-fasci 0 0 1 0 1 1 1 0 1
## ch-bimac 0 0 0 0 1 1 0 1 0
## ci-ocela 0 0 0 0 0 0 1 0 0
## ci-orien 0 0 1 0 0 1 1 0 1
## co-macro 0 0 0 0 0 0 0 0 0
## co-heter 0 0 1 0 0 0 0 0 0
## cr-menez 0 0 1 0 0 1 0 0 1
## cu-lepid 0 0 0 0 0 0 0 0 0
## S-R-CP3
## ap-davis 0
## as-bimac 1
## as-fasci 0
## ch-bimac 0
## ci-ocela 1
## ci-orien 1
## co-macro 0
## co-heter 0
## cr-menez 0
## cu-lepid 0
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 2 23 10 5 5 7 1 1
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 5 1 2 15 2 14 7 1
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 8 1 1 3 18 5 1 6
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 11 12 1 1 10 1 1 4
## sy-marmo te-chalc tr-signa
## 1 2 6
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 2 23 10 5 5 7 1 1
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 5 1 2 15 2 14 7 1
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 8 1 1 3 18 5 1 6
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 11 12 1 1 10 1 1 4
## sy-marmo te-chalc tr-signa
## 1 2 6
## [1] 26
12.7 Índices de Diversidade
12.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
## 0.4791656 2.4239775 1.4761308 1.1783625 1.1883832 1.4976803 0.0000000 0.0000000
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 1.2205076 0.0000000 0.6648803 1.5668772 0.6931472 2.1167591 1.2492728 0.0000000
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 1.9913464 0.0000000 0.0000000 0.2287207 2.1072815 1.1268689 0.0000000 1.0288585
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 1.8633952 1.3708151 0.0000000 0.0000000 1.8675926 0.0000000 0.0000000 0.9702899
## sy-marmo te-chalc tr-signa
## 0.0000000 0.6840978 1.0985693
12.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
## 0.30178326 0.88451845 0.69860599 0.67197827 0.61020408 0.70027874 0.00000000
## co-heter cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab
## 0.00000000 0.64540816 0.00000000 0.47200047 0.68977124 0.50000000 0.83982830
## hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot
## 0.58956556 0.00000000 0.85333333 0.00000000 0.00000000 0.09399167 0.83992302
## pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise
## 0.64444343 0.00000000 0.48641164 0.79634160 0.60348659 0.00000000 0.00000000
## se-heter se-piaba se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.81071950 0.00000000 0.00000000 0.57294468 0.00000000 0.49097795 0.51405325
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro
## 0.30178326 0.88451845 0.69860599 0.67197827 0.61020408 0.70027874 0.00000000
## co-heter cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab
## 0.00000000 0.64540816 0.00000000 0.47200047 0.68977124 0.50000000 0.83982830
## hy-pusar le-melan le-piau le-taeni mo-costa mo-lepid or-nilot
## 0.58956556 0.00000000 0.85333333 0.00000000 0.00000000 0.09399167 0.83992302
## pa-manag pimel-sp po-retic po-vivip pr-brevi ps-rhomb ps-genise
## 0.64444343 0.00000000 0.48641164 0.79634160 0.60348659 0.00000000 0.00000000
## se-heter se-piaba se-spilo st-noton sy-marmo te-chalc tr-signa
## 0.81071950 0.00000000 0.00000000 0.57294468 0.00000000 0.49097795 0.51405325
12.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
## 0.6912899 0.7730767 0.6410755 0.7321578 0.7383840 0.7696554 NaN NaN
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 0.7583440 NaN 0.9592195 0.5785997 1.0000000 0.8020891 0.6419992 NaN
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 0.9576352 NaN NaN 0.2081906 0.7290694 0.7001630 NaN 0.5742169
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 0.7770962 0.5516566 NaN NaN 0.8110852 NaN NaN 0.6999162
## sy-marmo te-chalc tr-signa
## NaN 0.9869445 0.6131232
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 0.6912899 0.7730767 0.6410755 0.7321578 0.7383840 0.7696554 0.0000000 0.0000000
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 0.7583440 0.0000000 0.9592195 0.5785997 1.0000000 0.8020891 0.6419992 0.0000000
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 0.9576352 0.0000000 0.0000000 0.2081906 0.7290694 0.7001630 0.0000000 0.5742169
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 0.7770962 0.5516566 0.0000000 0.0000000 0.8110852 0.0000000 0.0000000 0.6999162
## sy-marmo te-chalc tr-signa
## 0.0000000 0.9869445 0.6131232
12.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)
## Warning: package 'moments' was built under R version 4.3.1
<- 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
## 4.469425 1.774738 2.959549 2.544388 3.796856 3.482201 4.800000 4.800000
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 3.252387 4.800000 3.484076 3.638552 3.175426 2.282120 4.127075 4.800000
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 1.437653 4.800000 4.800000 4.790304 2.287297 2.867520 4.800000 4.462822
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 2.544468 4.046241 4.800000 4.800000 2.293389 4.800000 4.800000 3.419722
## sy-marmo te-chalc tr-signa
## 4.800000 3.281874 4.442741
## ap-davis as-bimac as-fasci ch-bimac ci-ocela ci-orien co-macro co-heter
## 21.730097 5.556931 10.273303 7.736436 17.146010 15.065210 24.040000 24.040000
## cr-menez cu-lepid cy-gilbe ge-brasi he-margi ho-malab hy-pusar le-melan
## 12.820351 24.040000 13.776840 16.059988 11.083333 7.604321 19.499005 24.040000
## le-piau le-taeni mo-costa mo-lepid or-nilot pa-manag pimel-sp po-retic
## 3.655586 24.040000 24.040000 23.979582 7.972989 9.860393 24.040000 21.825541
## po-vivip pr-brevi ps-rhomb ps-genise se-heter se-piaba se-spilo st-noton
## 8.674340 18.659676 24.040000 24.040000 7.676958 24.040000 24.040000 13.817921
## sy-marmo te-chalc tr-signa
## 24.040000 12.021173 21.715543
12.7.3.2 Tabela de descritores
Muito confuso? Criamos na sequência uma tabela final com todos os descritores da comunidade e da normalidade.
12.7.3.2.1 Descritores da estrutura da comunidade: Espécies
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; D, índice de diversidade de Simpson (Hurlbert 1971). (Fórmulas aqui)
<- cbind(Sum, Mean, DP, Max, Min, MinZ, 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 Mean DP Max Min MinZ S E H
## ap-davis 27 1.03846154 4.3861671 22 0 5 2 0.6912899 0.4791656
## as-bimac 2386 91.76923077 132.4348316 511 0 1 23 0.7730767 2.4239775
## as-fasci 158 6.07692308 16.2035134 64 0 1 10 0.6410755 1.4761308
## ch-bimac 705 27.11538462 75.8732242 273 0 3 5 0.7321578 1.1783625
## ci-ocela 70 2.69230769 8.2982853 40 0 2 5 0.7383840 1.1883832
## ci-orien 143 5.50000000 14.6184815 69 0 5 7 0.7696554 1.4976803
## co-macro 2 0.07692308 0.3922323 2 0 2 1 0.0000000 0.0000000
## co-heter 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## cr-menez 28 1.07692308 3.1486261 14 0 1 5 0.7583440 1.2205076
## cu-lepid 21 0.80769231 4.1184388 21 0 21 1 0.0000000 0.0000000
## cy-gilbe 131 5.03846154 18.3313519 81 0 50 2 0.9592195 0.6648803
## ge-brasi 1020 39.23076923 106.3478473 509 0 1 15 0.5785997 1.5668772
## he-margi 2 0.07692308 0.2717465 1 0 1 2 1.0000000 0.6931472
## ho-malab 109 4.19230769 7.6053625 31 0 1 14 0.8020891 2.1167591
## hy-pusar 71 2.73076923 8.6605205 43 0 1 7 0.6419992 1.2492728
## le-melan 2 0.07692308 0.3922323 2 0 2 1 0.0000000 0.0000000
## le-piau 15 0.57692308 0.9868364 3 0 1 8 0.9576352 1.9913464
## le-taeni 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## mo-costa 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## mo-lepid 41 1.57692308 7.6376597 39 0 1 3 0.2081906 0.2287207
## or-nilot 848 32.61538462 59.1452970 247 0 1 18 0.7290694 2.1072815
## pa-manag 554 21.30769231 62.3928004 250 0 1 5 0.7001630 1.1268689
## pimel-sp 6 0.23076923 1.1766968 6 0 6 1 0.0000000 0.0000000
## po-retic 381 14.65384615 52.5242362 266 0 5 6 0.5742169 1.0288585
## po-vivip 978 37.61538462 79.5004790 326 0 8 11 0.7770962 1.8633952
## pr-brevi 279 10.73076923 33.3892889 164 0 1 12 0.5516566 1.3708151
## ps-rhomb 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## ps-genise 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## se-heter 296 11.38461538 22.9905666 93 0 3 10 0.8110852 1.8675926
## se-piaba 68 2.61538462 13.3358972 68 0 68 1 0.0000000 0.0000000
## se-spilo 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## st-noton 205 7.88461538 25.5582893 115 0 1 4 0.6999162 0.9702899
## sy-marmo 1 0.03846154 0.1961161 1 0 1 1 0.0000000 0.0000000
## te-chalc 134 5.15384615 18.3841068 76 0 58 2 0.9869445 0.6840978
## tr-signa 208 8.00000000 27.8280434 141 0 4 6 0.6131232 1.0985693
## D
## ap-davis 0.30178326
## as-bimac 0.88451845
## as-fasci 0.69860599
## ch-bimac 0.67197827
## ci-ocela 0.61020408
## ci-orien 0.70027874
## co-macro 0.00000000
## co-heter 0.00000000
## cr-menez 0.64540816
## cu-lepid 0.00000000
## cy-gilbe 0.47200047
## ge-brasi 0.68977124
## he-margi 0.50000000
## ho-malab 0.83982830
## hy-pusar 0.58956556
## le-melan 0.00000000
## le-piau 0.85333333
## le-taeni 0.00000000
## mo-costa 0.00000000
## mo-lepid 0.09399167
## or-nilot 0.83992302
## pa-manag 0.64444343
## pimel-sp 0.00000000
## po-retic 0.48641164
## po-vivip 0.79634160
## pr-brevi 0.60348659
## ps-rhomb 0.00000000
## ps-genise 0.00000000
## se-heter 0.81071950
## se-piaba 0.00000000
## se-spilo 0.00000000
## st-noton 0.57294468
## sy-marmo 0.00000000
## te-chalc 0.49097795
## tr-signa 0.51405325
## Sum Mean DP Max Min MinZ S
## 8895.00000 342.11538 807.30587 3484.00000 0.00000 262.00000 194.00000
## E H D
## 16.69499 30.09298 14.31057
## Sum Mean DP Max Min MinZ
## 254.1428571 9.7747253 23.0658821 99.5428571 0.0000000 7.4857143
## S E H D
## 5.5428571 0.4769997 0.8597994 0.4088734
## Sum Mean DP Max Min MinZ
## 468.3865386 18.0148669 33.0609233 138.2715450 0.0000000 16.4573807
## S E H D
## 5.5590036 0.3757324 0.7784814 0.3354621
## Sum Mean DP Max Min MinZ S
## SomaTotalD 8895.0000 342.115385 807.30587 3484.00000 0 262.000000 194.000000
## MediaTotalD 254.1429 9.774725 23.06588 99.54286 0 7.485714 5.542857
## DPTotalD 468.3865 18.014867 33.06092 138.27155 0 16.457381 5.559004
## E H D
## SomaTotalD 16.6949878 30.0929803 14.3105692
## MediaTotalD 0.4769997 0.8597994 0.4088734
## DPTotalD 0.3757324 0.7784814 0.3354621
## Sum Mean DP Max Min MinZ
## ap-davis 27.0000 1.03846154 4.3861671 22.00000 0 5.000000
## as-bimac 2386.0000 91.76923077 132.4348316 511.00000 0 1.000000
## as-fasci 158.0000 6.07692308 16.2035134 64.00000 0 1.000000
## ch-bimac 705.0000 27.11538462 75.8732242 273.00000 0 3.000000
## ci-ocela 70.0000 2.69230769 8.2982853 40.00000 0 2.000000
## ci-orien 143.0000 5.50000000 14.6184815 69.00000 0 5.000000
## co-macro 2.0000 0.07692308 0.3922323 2.00000 0 2.000000
## co-heter 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## cr-menez 28.0000 1.07692308 3.1486261 14.00000 0 1.000000
## cu-lepid 21.0000 0.80769231 4.1184388 21.00000 0 21.000000
## cy-gilbe 131.0000 5.03846154 18.3313519 81.00000 0 50.000000
## ge-brasi 1020.0000 39.23076923 106.3478473 509.00000 0 1.000000
## he-margi 2.0000 0.07692308 0.2717465 1.00000 0 1.000000
## ho-malab 109.0000 4.19230769 7.6053625 31.00000 0 1.000000
## hy-pusar 71.0000 2.73076923 8.6605205 43.00000 0 1.000000
## le-melan 2.0000 0.07692308 0.3922323 2.00000 0 2.000000
## le-piau 15.0000 0.57692308 0.9868364 3.00000 0 1.000000
## le-taeni 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## mo-costa 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## mo-lepid 41.0000 1.57692308 7.6376597 39.00000 0 1.000000
## or-nilot 848.0000 32.61538462 59.1452970 247.00000 0 1.000000
## pa-manag 554.0000 21.30769231 62.3928004 250.00000 0 1.000000
## pimel-sp 6.0000 0.23076923 1.1766968 6.00000 0 6.000000
## po-retic 381.0000 14.65384615 52.5242362 266.00000 0 5.000000
## po-vivip 978.0000 37.61538462 79.5004790 326.00000 0 8.000000
## pr-brevi 279.0000 10.73076923 33.3892889 164.00000 0 1.000000
## ps-rhomb 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## ps-genise 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## se-heter 296.0000 11.38461538 22.9905666 93.00000 0 3.000000
## se-piaba 68.0000 2.61538462 13.3358972 68.00000 0 68.000000
## se-spilo 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## st-noton 205.0000 7.88461538 25.5582893 115.00000 0 1.000000
## sy-marmo 1.0000 0.03846154 0.1961161 1.00000 0 1.000000
## te-chalc 134.0000 5.15384615 18.3841068 76.00000 0 58.000000
## tr-signa 208.0000 8.00000000 27.8280434 141.00000 0 4.000000
## SomaTotalD 8895.0000 342.11538462 807.3058718 3484.00000 0 262.000000
## MediaTotalD 254.1429 9.77472527 23.0658821 99.54286 0 7.485714
## DPTotalD 468.3865 18.01486687 33.0609233 138.27155 0 16.457381
## S E H D
## ap-davis 2.000000 0.6912899 0.4791656 0.30178326
## as-bimac 23.000000 0.7730767 2.4239775 0.88451845
## as-fasci 10.000000 0.6410755 1.4761308 0.69860599
## ch-bimac 5.000000 0.7321578 1.1783625 0.67197827
## ci-ocela 5.000000 0.7383840 1.1883832 0.61020408
## ci-orien 7.000000 0.7696554 1.4976803 0.70027874
## co-macro 1.000000 0.0000000 0.0000000 0.00000000
## co-heter 1.000000 0.0000000 0.0000000 0.00000000
## cr-menez 5.000000 0.7583440 1.2205076 0.64540816
## cu-lepid 1.000000 0.0000000 0.0000000 0.00000000
## cy-gilbe 2.000000 0.9592195 0.6648803 0.47200047
## ge-brasi 15.000000 0.5785997 1.5668772 0.68977124
## he-margi 2.000000 1.0000000 0.6931472 0.50000000
## ho-malab 14.000000 0.8020891 2.1167591 0.83982830
## hy-pusar 7.000000 0.6419992 1.2492728 0.58956556
## le-melan 1.000000 0.0000000 0.0000000 0.00000000
## le-piau 8.000000 0.9576352 1.9913464 0.85333333
## le-taeni 1.000000 0.0000000 0.0000000 0.00000000
## mo-costa 1.000000 0.0000000 0.0000000 0.00000000
## mo-lepid 3.000000 0.2081906 0.2287207 0.09399167
## or-nilot 18.000000 0.7290694 2.1072815 0.83992302
## pa-manag 5.000000 0.7001630 1.1268689 0.64444343
## pimel-sp 1.000000 0.0000000 0.0000000 0.00000000
## po-retic 6.000000 0.5742169 1.0288585 0.48641164
## po-vivip 11.000000 0.7770962 1.8633952 0.79634160
## pr-brevi 12.000000 0.5516566 1.3708151 0.60348659
## ps-rhomb 1.000000 0.0000000 0.0000000 0.00000000
## ps-genise 1.000000 0.0000000 0.0000000 0.00000000
## se-heter 10.000000 0.8110852 1.8675926 0.81071950
## se-piaba 1.000000 0.0000000 0.0000000 0.00000000
## se-spilo 1.000000 0.0000000 0.0000000 0.00000000
## st-noton 4.000000 0.6999162 0.9702899 0.57294468
## sy-marmo 1.000000 0.0000000 0.0000000 0.00000000
## te-chalc 2.000000 0.9869445 0.6840978 0.49097795
## tr-signa 6.000000 0.6131232 1.0985693 0.51405325
## SomaTotalD 194.000000 16.6949878 30.0929803 14.31056920
## MediaTotalD 5.542857 0.4769997 0.8597994 0.40887341
## DPTotalD 5.559004 0.3757324 0.7784814 0.33546207
## Sum Mean DP Max Min MinZ S E H D
## ap-davis 27.00 1.04 4.39 22.00 0 5.00 2.00 0.69 0.48 0.30
## as-bimac 2386.00 91.77 132.43 511.00 0 1.00 23.00 0.77 2.42 0.88
## as-fasci 158.00 6.08 16.20 64.00 0 1.00 10.00 0.64 1.48 0.70
## ch-bimac 705.00 27.12 75.87 273.00 0 3.00 5.00 0.73 1.18 0.67
## ci-ocela 70.00 2.69 8.30 40.00 0 2.00 5.00 0.74 1.19 0.61
## ci-orien 143.00 5.50 14.62 69.00 0 5.00 7.00 0.77 1.50 0.70
## co-macro 2.00 0.08 0.39 2.00 0 2.00 1.00 0.00 0.00 0.00
## co-heter 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## cr-menez 28.00 1.08 3.15 14.00 0 1.00 5.00 0.76 1.22 0.65
## cu-lepid 21.00 0.81 4.12 21.00 0 21.00 1.00 0.00 0.00 0.00
## cy-gilbe 131.00 5.04 18.33 81.00 0 50.00 2.00 0.96 0.66 0.47
## ge-brasi 1020.00 39.23 106.35 509.00 0 1.00 15.00 0.58 1.57 0.69
## he-margi 2.00 0.08 0.27 1.00 0 1.00 2.00 1.00 0.69 0.50
## ho-malab 109.00 4.19 7.61 31.00 0 1.00 14.00 0.80 2.12 0.84
## hy-pusar 71.00 2.73 8.66 43.00 0 1.00 7.00 0.64 1.25 0.59
## le-melan 2.00 0.08 0.39 2.00 0 2.00 1.00 0.00 0.00 0.00
## le-piau 15.00 0.58 0.99 3.00 0 1.00 8.00 0.96 1.99 0.85
## le-taeni 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## mo-costa 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## mo-lepid 41.00 1.58 7.64 39.00 0 1.00 3.00 0.21 0.23 0.09
## or-nilot 848.00 32.62 59.15 247.00 0 1.00 18.00 0.73 2.11 0.84
## pa-manag 554.00 21.31 62.39 250.00 0 1.00 5.00 0.70 1.13 0.64
## pimel-sp 6.00 0.23 1.18 6.00 0 6.00 1.00 0.00 0.00 0.00
## po-retic 381.00 14.65 52.52 266.00 0 5.00 6.00 0.57 1.03 0.49
## po-vivip 978.00 37.62 79.50 326.00 0 8.00 11.00 0.78 1.86 0.80
## pr-brevi 279.00 10.73 33.39 164.00 0 1.00 12.00 0.55 1.37 0.60
## ps-rhomb 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## ps-genise 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## se-heter 296.00 11.38 22.99 93.00 0 3.00 10.00 0.81 1.87 0.81
## se-piaba 68.00 2.62 13.34 68.00 0 68.00 1.00 0.00 0.00 0.00
## se-spilo 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## st-noton 205.00 7.88 25.56 115.00 0 1.00 4.00 0.70 0.97 0.57
## sy-marmo 1.00 0.04 0.20 1.00 0 1.00 1.00 0.00 0.00 0.00
## te-chalc 134.00 5.15 18.38 76.00 0 58.00 2.00 0.99 0.68 0.49
## tr-signa 208.00 8.00 27.83 141.00 0 4.00 6.00 0.61 1.10 0.51
## SomaTotalD 8895.00 342.12 807.31 3484.00 0 262.00 194.00 16.69 30.09 14.31
## MediaTotalD 254.14 9.77 23.07 99.54 0 7.49 5.54 0.48 0.86 0.41
## DPTotalD 468.39 18.01 33.06 138.27 0 16.46 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; mean, média; DP, desvio padrão da média; Max, maior valor; Min, menor valor; MinZ, menor valor não zero; 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.")
## [1] 10
## [1] 38
Spp | Sum | Mean | DP | Max | Min | MinZ | S | E | H | D |
---|---|---|---|---|---|---|---|---|---|---|
ap-davis | 27.00 | 1.04 | 4.39 | 22.00 | 0 | 5.00 | 2.00 | 0.69 | 0.48 | 0.30 |
as-bimac | 2386.00 | 91.77 | 132.43 | 511.00 | 0 | 1.00 | 23.00 | 0.77 | 2.42 | 0.88 |
as-fasci | 158.00 | 6.08 | 16.20 | 64.00 | 0 | 1.00 | 10.00 | 0.64 | 1.48 | 0.70 |
ch-bimac | 705.00 | 27.12 | 75.87 | 273.00 | 0 | 3.00 | 5.00 | 0.73 | 1.18 | 0.67 |
ci-ocela | 70.00 | 2.69 | 8.30 | 40.00 | 0 | 2.00 | 5.00 | 0.74 | 1.19 | 0.61 |
ci-orien | 143.00 | 5.50 | 14.62 | 69.00 | 0 | 5.00 | 7.00 | 0.77 | 1.50 | 0.70 |
co-macro | 2.00 | 0.08 | 0.39 | 2.00 | 0 | 2.00 | 1.00 | 0.00 | 0.00 | 0.00 |
co-heter | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
cr-menez | 28.00 | 1.08 | 3.15 | 14.00 | 0 | 1.00 | 5.00 | 0.76 | 1.22 | 0.65 |
cu-lepid | 21.00 | 0.81 | 4.12 | 21.00 | 0 | 21.00 | 1.00 | 0.00 | 0.00 | 0.00 |
cy-gilbe | 131.00 | 5.04 | 18.33 | 81.00 | 0 | 50.00 | 2.00 | 0.96 | 0.66 | 0.47 |
ge-brasi | 1020.00 | 39.23 | 106.35 | 509.00 | 0 | 1.00 | 15.00 | 0.58 | 1.57 | 0.69 |
he-margi | 2.00 | 0.08 | 0.27 | 1.00 | 0 | 1.00 | 2.00 | 1.00 | 0.69 | 0.50 |
ho-malab | 109.00 | 4.19 | 7.61 | 31.00 | 0 | 1.00 | 14.00 | 0.80 | 2.12 | 0.84 |
hy-pusar | 71.00 | 2.73 | 8.66 | 43.00 | 0 | 1.00 | 7.00 | 0.64 | 1.25 | 0.59 |
le-melan | 2.00 | 0.08 | 0.39 | 2.00 | 0 | 2.00 | 1.00 | 0.00 | 0.00 | 0.00 |
le-piau | 15.00 | 0.58 | 0.99 | 3.00 | 0 | 1.00 | 8.00 | 0.96 | 1.99 | 0.85 |
le-taeni | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
mo-costa | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
mo-lepid | 41.00 | 1.58 | 7.64 | 39.00 | 0 | 1.00 | 3.00 | 0.21 | 0.23 | 0.09 |
or-nilot | 848.00 | 32.62 | 59.15 | 247.00 | 0 | 1.00 | 18.00 | 0.73 | 2.11 | 0.84 |
pa-manag | 554.00 | 21.31 | 62.39 | 250.00 | 0 | 1.00 | 5.00 | 0.70 | 1.13 | 0.64 |
pimel-sp | 6.00 | 0.23 | 1.18 | 6.00 | 0 | 6.00 | 1.00 | 0.00 | 0.00 | 0.00 |
po-retic | 381.00 | 14.65 | 52.52 | 266.00 | 0 | 5.00 | 6.00 | 0.57 | 1.03 | 0.49 |
po-vivip | 978.00 | 37.62 | 79.50 | 326.00 | 0 | 8.00 | 11.00 | 0.78 | 1.86 | 0.80 |
pr-brevi | 279.00 | 10.73 | 33.39 | 164.00 | 0 | 1.00 | 12.00 | 0.55 | 1.37 | 0.60 |
ps-rhomb | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
ps-genise | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
se-heter | 296.00 | 11.38 | 22.99 | 93.00 | 0 | 3.00 | 10.00 | 0.81 | 1.87 | 0.81 |
se-piaba | 68.00 | 2.62 | 13.34 | 68.00 | 0 | 68.00 | 1.00 | 0.00 | 0.00 | 0.00 |
se-spilo | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
st-noton | 205.00 | 7.88 | 25.56 | 115.00 | 0 | 1.00 | 4.00 | 0.70 | 0.97 | 0.57 |
sy-marmo | 1.00 | 0.04 | 0.20 | 1.00 | 0 | 1.00 | 1.00 | 0.00 | 0.00 | 0.00 |
te-chalc | 134.00 | 5.15 | 18.38 | 76.00 | 0 | 58.00 | 2.00 | 0.99 | 0.68 | 0.49 |
tr-signa | 208.00 | 8.00 | 27.83 | 141.00 | 0 | 4.00 | 6.00 | 0.61 | 1.10 | 0.51 |
SomaTotalD | 8895.00 | 342.12 | 807.31 | 3484.00 | 0 | 262.00 | 194.00 | 16.69 | 30.09 | 14.31 |
MediaTotalD | 254.14 | 9.77 | 23.07 | 99.54 | 0 | 7.49 | 5.54 | 0.48 | 0.86 | 0.41 |
DPTotalD | 468.39 | 18.01 | 33.06 | 138.27 | 0 | 16.46 | 5.56 | 0.38 | 0.78 | 0.34 |
12.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 |
12.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.
12.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
## ap-davis 0 0 0 0 0 0 0 0 0
## as-bimac 1 99 194 19 23 142 5 46 206
## as-fasci 0 0 55 0 1 3 1 0 64
## ch-bimac 0 0 0 0 13 3 0 178 0
## ci-ocela 0 0 0 0 0 0 40 0 0
## ci-orien 0 0 5 0 0 69 9 0 25
## co-macro 0 0 0 0 0 0 0 0 0
## co-heter 0 0 1 0 0 0 0 0 0
## cr-menez 0 0 14 0 0 4 0 0 8
## cu-lepid 0 0 0 0 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 0 0 0 0
## ge-brasi 0 0 3 0 0 0 0 0 1
## he-margi 0 0 0 0 0 1 0 0 0
## ho-malab 0 0 1 5 0 17 10 2 31
## hy-pusar 0 0 9 2 0 43 2 0 11
## le-melan 0 0 0 0 0 0 0 0 0
## le-piau 0 0 3 0 0 1 3 0 2
## le-taeni 0 0 0 0 0 0 0 0 0
## mo-costa 0 0 0 0 0 0 0 0 0
## mo-lepid 0 1 39 0 0 1 0 0 0
## or-nilot 0 2 36 0 0 77 0 0 138
## pa-manag 0 0 0 0 0 0 0 0 0
## pimel-sp 0 0 6 0 0 0 0 0 0
## po-retic 0 0 0 0 0 20 0 0 5
## po-vivip 0 0 47 15 0 221 32 0 326
## pr-brevi 9 0 5 0 1 15 5 2 164
## ps-rhomb 0 0 0 0 0 0 0 0 1
## ps-genise 0 0 0 0 0 0 0 0 1
## se-heter 0 0 40 14 4 60 0 0 38
## se-piaba 0 0 68 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 1
## st-noton 0 0 1 0 0 25 0 0 115
## sy-marmo 0 0 0 0 0 0 1 0 0
## te-chalc 0 0 0 0 0 0 0 0 0
## tr-signa 0 0 18 0 0 15 0 0 7
## S-R-CP3 S-A-TA3 S-R-CT4 S-R-CP4 S-A-TA4 B-A-MU1 B-R-ET1 B-A-GU1 B-R-PC2
## ap-davis 0 0 0 0 0 0 0 0 5
## as-bimac 16 234 0 0 394 12 3 2 44
## as-fasci 0 7 1 0 0 0 0 2 0
## ch-bimac 0 238 0 0 273 0 0 0 0
## ci-ocela 13 0 0 11 0 0 0 0 2
## ci-orien 24 0 5 6 0 0 0 0 0
## co-macro 0 2 0 0 0 0 0 0 0
## co-heter 0 0 0 0 0 0 0 0 0
## cr-menez 0 0 1 0 1 0 0 0 0
## cu-lepid 0 0 0 0 0 0 0 0 0
## cy-gilbe 0 0 50 0 0 0 0 0 0
## ge-brasi 0 0 3 0 1 190 0 7 8
## he-margi 0 0 1 0 0 0 0 0 0
## ho-malab 4 20 4 2 9 0 0 0 0
## hy-pusar 0 0 3 0 0 0 0 0 0
## le-melan 0 0 0 0 0 0 0 0 2
## le-piau 1 0 0 2 2 0 0 0 0
## le-taeni 0 0 0 0 0 0 0 0 1
## mo-costa 0 0 0 0 0 0 0 0 0
## mo-lepid 0 0 0 0 0 0 0 0 0
## or-nilot 0 0 73 0 1 6 8 3 5
## pa-manag 0 0 0 0 0 0 1 11 0
## pimel-sp 0 0 0 0 0 0 0 0 0
## po-retic 0 0 0 0 0 0 34 0 0
## po-vivip 10 0 28 80 0 0 0 0 0
## pr-brevi 0 0 59 0 3 0 0 0 9
## ps-rhomb 0 0 0 0 0 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0 0
## se-heter 0 0 3 3 0 0 0 0 10
## se-piaba 0 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0 0
## st-noton 0 0 64 0 0 0 0 0 0
## sy-marmo 0 0 0 0 0 0 0 0 0
## te-chalc 0 0 0 0 0 0 0 0 76
## tr-signa 0 0 141 0 0 0 0 0 23
## 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 22 0 0 0 0 0
## as-bimac 99 0 75 511 6 7 235 13
## as-fasci 0 0 7 0 0 17 0 0
## ch-bimac 0 0 0 0 0 0 0 0
## ci-ocela 0 0 4 0 0 0 0 0
## ci-orien 0 0 0 0 0 0 0 0
## co-macro 0 0 0 0 0 0 0 0
## co-heter 0 0 0 0 0 0 0 0
## cr-menez 0 0 0 0 0 0 0 0
## cu-lepid 0 0 21 0 0 0 0 0
## cy-gilbe 0 0 0 0 0 81 0 0
## ge-brasi 67 23 16 145 32 5 509 10
## he-margi 0 0 0 0 0 0 0 0
## ho-malab 1 0 2 0 0 1 0 0
## hy-pusar 0 0 1 0 0 0 0 0
## le-melan 0 0 0 0 0 0 0 0
## le-piau 0 0 0 0 0 1 0 0
## le-taeni 0 0 0 0 0 0 0 0
## mo-costa 0 0 1 0 0 0 0 0
## mo-lepid 0 0 0 0 0 0 0 0
## or-nilot 1 36 65 11 247 9 1 129
## pa-manag 0 102 0 0 250 0 0 190
## pimel-sp 0 0 0 0 0 0 0 0
## po-retic 10 0 0 46 0 0 266 0
## po-vivip 8 0 0 48 0 0 163 0
## pr-brevi 0 0 6 1 0 0 0 0
## ps-rhomb 0 0 0 0 0 0 0 0
## ps-genise 0 0 0 0 0 0 0 0
## se-heter 0 0 93 0 0 31 0 0
## se-piaba 0 0 0 0 0 0 0 0
## se-spilo 0 0 0 0 0 0 0 0
## st-noton 0 0 0 0 0 0 0 0
## sy-marmo 0 0 0 0 0 0 0 0
## te-chalc 0 0 58 0 0 0 0 0
## tr-signa 0 0 0 0 0 4 0 0
<- ppbio m_trab
Agora faremos uma série de gráficos para a matriz comunitária.
12.8 Gráficos descritivos
12.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
grafico1
ggsave(grafico1, dpi = 300, filename = "fig-hill.png")
## Saving 7 x 5 in image
12.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 12.6), 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"))
grafico2
ggsave(grafico2, dpi = 300, filename = "fig-abun.png")
## Saving 7 x 5 in image
12.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
## 10 102 545 55 42 717 108 228 1144 68
## S-A-TA3 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
## 501 436 104 684 208 46 25 185 186 161
## B-R-PC3 B-A-MU3 B-A-GU3 B-R-PC4 B-A-MU4 B-A-GU4
## 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"
## [8] "S-A-TA2" "S-R-CT3" "S-R-CP3" "S-A-TA3" "S-R-CT4" "S-R-CP4" "S-A-TA4"
## [15] "B-A-MU1" "B-R-ET1" "B-A-GU1" "B-R-PC2" "B-A-MU2" "B-A-GU2" "B-R-PC3"
## [22] "B-A-MU3" "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 (12.7). 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)
## Warning: package 'iNEXT' was built under R version 4.3.3
<- 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"
grafico3
ggsave(grafico3, dpi = 300, filename = "fig-rare1.png")
## Saving 7 x 5 in image
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%.
12.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.
12.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.0000 2.00000 3.00000 4.0000 5.00000 6.00000 7.00000 8.00000
## Richness 7.3100 12.39000 15.23000 17.7100 19.25000 20.86000 21.95000 23.18000
## sd 4.6006 5.16573 4.88009 4.8248 4.50224 4.24269 3.97816 3.88049
##
## Sites 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000
## Richness 24.34000 25.35000 26.12000 26.83000 27.74000 28.46000 29.15000 29.87000
## sd 3.53402 3.67733 3.59371 3.44965 3.13862 3.00646 2.84756 2.61176
##
## Sites 17.00000 18.0000 19.00000 20.00000 21.00000 22.00000 23.00000 24.00000
## Richness 30.50000 31.0700 31.59000 32.23000 32.67000 33.08000 33.60000 34.09000
## sd 2.46388 2.3366 2.16069 1.98405 1.87517 1.70371 1.42134 1.20684
##
## Sites 25.00000 26
## Richness 34.51000 35
## sd 0.96917 0
12.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))
gLocais
ggsave(gLocais, dpi = 300, filename = "fig-acum.png")
## Saving 7 x 5 in image
12.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
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="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.")
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")