====== Trabalho Final ======
=== Arquivo Da Função ===
{{:bie5782:01_curso_atual:alunos:trabalho_final:moreno_pereira:funcao_bci.r|Função BCI}}
=== Código da Função ===
#####FUNÇÃO BCI por Moreno Pereira #############
##########################################################
##########################################################
BCI<-function(baleias, ad=TRUE, Megaptera=FALSE, rmNA=FALSE) #Nomeando a função e seus argumentos
{
if(class(baleias)!="data.frame") #verificia se o objeto é um data.frame
{
stop("o objeto não é um data.frame") #para a função e emite o aviso que a classe não é data.frame
}
if(ncol(baleias) < 5) # Verifica o número de colunas do data frame
{
stop("número de colunas insuficiente") #emite aviso caso o número de colunas não seja o suficiente
}
if(is.null(baleias$Especie)) # verifica se a tabela de dados nao posui uma coluna chamada "Especie"
{
stop("seu objeto precisa da coluna Especie") #emite um aviso de que o objeto precisa da coluna "Especie"
}
if (length(baleias[,3])!=length(baleias[,4])) #verifica se as colunas tem mesmo comprimento
{
stop("as colunas não possuem o mesmo tamanho") #emite aviso caso não tenham mesmo comprimento
}
if(Megaptera==TRUE) #caso o usuário queira calcular o índice apenas para o gênero do artigo base (Megaptera)
{
baleias<-baleias[which(baleias$Especie=="Megaptera"),] #recria o objeto apenas com o gênero Megaptera
}
if(rmNA==TRUE) # se o data.frame tiver NAs para serem removidos
{
baleias <- (na.omit(baleias)) # cria o objeto novamente sem NA
}
######calculo de BCI####
baleias[,2]<-as.factor(baleias[,2]) #transforma a coluna de individuos na classe de fatores
cond<-tapply(baleias[,3]/2*baleias[,4]+baleias[,5],baleias[,2],FUN=sum)#calcula a condição corporal dos animais
adultos<-cond[which(cond>8)] #coloca no objeto adultos apenas animais com BCI maiores que 8
imaturos<-cond[which(cond<8)] #coloca no objeto imaturos apenas animais com BCI menores que 8
if(ad==TRUE){return(adultos) #retorna apenas a classe adultos caso o usuário queira trabalhar só com esssa classe
}
else{ return(imaturos) #retorna apenas a classe imaturos caso o usuário queira trabalhar só com esssa classe
}}
===Arquivo Help da função===
{{:bie5782:01_curso_atual:alunos:trabalho_final:moreno_pereira:help_funcao.docx|Help BCI}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:moreno_pereira:help_bci.txt|Help BCI}}
=== Página de Help da função BCI===
BCI package:unknown R Documentation
ÍNDICE DE CONDIÇÃO CORPÓREA EM CETÁCEOS (BCI)
Description:
A função calcula o índice de condição corpórea (Body Condition Index) de grandes cetáceos (a partir de medidas feitas por sobrevoo de drones) e classifica os animais em adultos ou imaturos de acordo com esse índice.
Usage:
BCI (baleias, ad=TRUE, Megaptera=FALSE, rmNA=FALSE)
Arguments:
baleias: objeto da classe data.frame que contenha pelo menos 5 colunas de dados
ad: argumento lógico. Se TRUE retorna um array com os indivíduos da classe adulto e seus respectivos índices. Se FALSE retorna um array com os indivíduos da classe imaturo e seus respectivos índices
Megaptera: argumento lógico. Se TRUE irá trabalhar apenas com os animais do gênero do artigo base (Megaptera). Se FALSE irá trabalhar com todos os gêneros disponíveis na planilha
rmNA: argumento lógico. Se TRUE exclui as linhas contendo NAs. Se FALSE mantém as linhas com NAs nos cálculos
Details:
O cálculo de índice de condição corpórea é feito dividindo a superfície do corpo do animal em segmentos trapezoidais e fazendo a somatória da área desses segmentos. Sendo assim o data.frame precisa de medidas especificas em metros para serem realizados os cálculos
Como a função trabalha com medidas específicas é necessário que o objeto de entrada data.frame contenha nas colunas 3, 4 e 5 as medidas de altura, base menor e base maior do segmento trapezoidal respectivamente para o cálculo correto das áreas e dos índices. O data.frame também deve conter uma coluna chamada “Especie” para que o usuário possa utilizar o argumento “Megaptera”.
Value:
Retorna um array com a classe, os indivíduos e seus respectivos índices de condição corpórea.
Warning:
Caso a data frame não contenha uma coluna chamada “Especie” a função não irá ser executada, bem como se as colunas não tiverem o mesmo comprimento ou se o número de colunas do data.frame for menor do que 5.
Author(s):
Moreno Pereira
Email: moreno_pereira@hotmail.com
References:
Christiansen, F., A. M. Dujon, K. R. Sprogis, J. P. Y. Arnould, and L. Bejder. 2016. Noninvasive unmanned aerial vehicle provides estimates of the energetic cost of reproduction in humpback whales. Ecosphere 7(10):e01468.
10.1002/ecs2.1468
See Also:
Como é calculado o índice de condição corpórea na página 6 do artigo acima
Examples:
#Exemplo com saída apenas de “imaturos”
BCI (dados, ad=FALSE, Megaptera=TRUE, rmNA=FALSE)
#Exemplo utilizando todas as espécies dos dados
BCI (dados, ad=FALSE, Megaptera=FALSE, rmNA=FALSE)
===Arquivo para testar a função===
{{:bie5782:01_curso_atual:alunos:trabalho_final:moreno_pereira:tester.csv|Arquivo para testar a função BCI}}