====== Daniel Sartor ======
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:foto_ssi2.jpg?200|}}
Mestrando em Ecologia, Instituto de Biociências, USP.
O título de minha dissertação é: “Dinâmica no recrutamento de peixes recifais no Banco dos Abrolhos, BA: Influência de características do hábitat e variáveis ambientais”, orientado pelo Prof. Dr. Sérgio Rosso (USP) e coorientado pelo Prof. Dr. Ronaldo Bastos Francini Filho (UFPB)
[[.:exec]]{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:exercicio1.r|}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:exercicios_aula_4_daniel_sartor.r|}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:exercicios_5.r|}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:exercicio7_2.r|}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:exercicio_7b.r|}}
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:exercicio8_2.r|}}
**TRABALHO FINAL:**
**PROPOSTA:**
**PLANO A:**
Meu plano A está envolve a análise exploratória e representação gráfica de alguns dados. A idéia é fazer uma função que, a partir de um data.frame de contagem de diferentes espécies em diversos locais, calcule e plote, dentro de um mesmo gráfico, a abundância relativa e frequência de observações das espécies. Esses características são normalmente utilizadas na seleção de espécies para um trabalho, visando eliminar aquelas extremamente raras e difíceis de serem tratadas estatísticamente.
Pensei também em criar argumentos para que o usuário pudesse escolher determinada espécie e plotar sua abundância e frequência de observação por local de amostragem. Acredito que a função seria útil pois esse tipo de data.frame é comumente derivado de diversos projetos, trabalhos de consultorias e monitoramentos em unidades de conservação, e essa análise poderia ser uma importante ferramenta no auxílio do delineamento de projetos futuros.
**PLANO B**
Minha segunda idéia envolve avaliar se é mais vantajoso financeiramente ir de táxi por uma rota mais longa com trânsito livre ou por outra mais curta mas com trânsito mais pesado. Para isso o usuário deveria fornecer um data.frame com a distância e tempo estimado de percurso sem trânsito para cada um das rotas. Então a função teria argumentos para informar se o táxio está rodando em Bandeira 1 ou 2 e também se o trânsito está livre, lento ou parado. A partir disso seria possível saber a distância percorrida e o tempo, estimado, que o táxi ficaria parado e então é possível calcular o preço médio da corrida. Para entender melhor como funciona um taxímetro: (http://mundoestranho.abril.com.br/materia/como-funciona-o-taximetro).
Daniel, sua proposta A está ok. Eu vi seu gráfico preliminar na aula, lembro da idéia. Não ficou muito claro o que é a frequência de observações (número de locais em que a espécie foi observada?) e qual a vantagem de analisar isso junto com a abundância. A opção de fazer o gráfico para uma espécie é interessante, se der tempo de juntar tudo isso na função vai ser legal.
A proposta B é divertida e um pouco mais simples. A entrada de dados precisa estar bem definida no help (talvez pudesse entrar com os dados direto nos argumentos, sem ter que passar pelo data frame).
----//[[sheinak@gmail.com| Sheina]]//
**Código da Função censo.aed (Proposta A)**
censo.aed<-function(data.frame,col.sp,ylim)#criação da função censo.aed
{
if (missing(ylim))#Se o usuário nao especificar os limites de y
{ylim<-c(0,100)#será considerado que o limite é entre 0 e 100
}
if(sum(is.na(data.frame[,1])>0)) #Caso existam NAs na primeira coluna (locais) do data.frame especificado pelo usuário
{ stop("A coluna 1 do data.frame especificado contém NAs")#será mostrada uma mensagem de ERRO para o usuário e a função não será executada
}
if (missing(col.sp))#Se o usuário nao especificar o argumento "col.sp" será feito o procedimento a seguir
{
if(sum(apply(data.frame[,-1], 2, is.numeric))==0)#Caso o data.frame especificado contehha valores não numéricos fora da primeira coluna
{ stop("O data.frame específicado contém valores não numéricos fora da primeira coluna")#será mostrada uma mensagem de erro e a função não irá executar
}
if(sum(is.na(data.frame[,])>0))#Caso existam NAs no data.frame especificado pelo usuário
{
warning("Os NAs presentes no data.frame foram substituídos por zero")#gerar uma mensagem de aviso
data.frame[,][is.na(data.frame[,])]<-0 #Substituir os valores de NA por 0
}
Abund.geral.especies<-colSums(data.frame[,-1])/sum(colSums(data.frame[,-1]))#calculo da abundancia relativa de cada espécie; Guardei os dados em um objeto
frequencia<- colSums(data.frame[,-1] > 0)/nrow(data.frame)#calculo da frequência de observação para cada espécie; Guardei os dados em um objeto
lista.sp <- names(data.frame[,-1]) #fiz uma lista com os nomes das espécies para usar de "label" no eixo X do gráfico
plot((Abund.geral.especies*100), ylim=ylim, bty="l",ylab= "%",lwd=5,type="h",main="GERAL",xlab="", col="grey", cex=7.0,xaxt="n" ) #plotar a abundância relativa das espécies em porcentagem
mtext(side = 1, text = "Espécie", line = 3) #adicionar um texto abaixo do eixo x
par(cex=0.7)#muda o tamanhao daquilo que será colocado na janela gráfica para 0.7
par(new=TRUE)#permitir que sejam adicionadas outras informações sobre o plot
plot((frequencia*100) ,ylim=ylim,axes=FALSE, ann=FALSE,col="black",pch=16,cex=0.8)#plotar a frequencia de observação de cada espécie em porcentagem
axis(1, at=c(1:(ncol(data.frame)-1)),labels=lista.sp, las=2,cex=0.5)#inserir um eixo x com o nome das espécies como labels
}
else{ #caso o usuário especifique o argumento "col.sp"
if(is.numeric(data.frame[,col.sp])==F)#caso a coluna especificada por "col.sp" contenha valores não numéricos
{ stop("A coluna específicada em col.sp contém valores não numéricos")#será mostrada uma mensagem de erro e a função não irá executar
}
if (sum(is.na(data.frame[,col.sp]))>0)#caso a coluna especificada por "col.sp" contenha NAs
{warning("Os NAs presentes na coluna especificada em col.sp foram substituídos por zero")#gerar uma mensagem de aviso
data.frame[,col.sp][is.na(data.frame[,col.sp])]<-0#Substituir os valores de NA por 0
}
data.frame$soma.linha<- apply(data.frame[,2:ncol(data.frame)],1,sum)#inseri um coluna no data.frame com a soma de todos os numeros da linha, assim tenho a soma de quantos animais foram avistados por censo, dado importante para calculos posteriores
Nomes.sp<-colnames(data.frame) #guardei o nome das colunas do data.frame em um vetor para me auxiliar no resto da função
names(data.frame)[1]<-paste("Local")#mudei o nome da primeira coluna do data.frame para "Local"
names(data.frame)[col.sp]<-paste("sp")#mudei o nome da coluna do data.frame especificada por "col.sp" para "sp"
data.frame$Local<-as.factor(data.frame$Local)#mudei os tipo dos dados da primeira coluna do data.frame para fator
Abundancia<-tapply(data.frame$sp, data.frame$Local, FUN=sum)/tapply(data.frame$soma.linha, data.frame$Local, FUN=sum)#calculo da abundancia relativa por local; Guardei os dados em um objeto
Frequencia<-tapply(data.frame$sp >0 , data.frame$Local, FUN=sum)/tapply(data.frame$sp >=0 , data.frame$Local, FUN=sum)#calculo de frequencia de observação por local; Guardei os dados em um objeto
plot((Abundancia*100), bty="l",ylab= "%",ylim=ylim, lwd=5,type="h",main=Nomes.sp[col.sp],xlab=Nomes.sp[1], col="grey", cex=7.0,xaxt="n" )#plotei a abundancia relativa das espécies em porcentagem por local de amostragem
mtext(side = 1, text = "Local", line = 5) #inseri um texto abaixo do eixo x
par(cex=0.7)#muda o tamanhao daquilo que será colocado na janela gráfica para 0.7
axis(1,at=c(1:nlevels(data.frame$Local)),xlim=c(1,nlevels(data.frame$Local)),labels=unique(data.frame$Local),las=2,cex=0.9)#inserir um eixo x com o nome dos locais como labels
par(cex=1.0)#restaura o tamanhao daquilo que será colocado na janela gráfica
par(new=TRUE)#permitir que sejam adicionadas outras informações sobre o plot
plot((Frequencia*100),axes=FALSE, ann=FALSE, ylim=ylim, col="black",pch=16,cex=0.8)#plotar a frequencia de observação em porcentagem por localde amostragem
}
#legenda do grafico
par(cex=1)#restaura o tamanhao daquilo que será colocado na janela gráfica
par(new=T)#permito que algo seja plotado sem apagar o plot antigo
plot(0,0,xlim=c(0,10), ylim=c(0,10), xaxt="n",xlab="",ylab="", yaxt="n", bty="n", type="n") #defino um novo plot sem nada dentro para que eu possa usar essas coordenadas depois
points (x=-1.5,y=12, pch=16, xpd=T)#ploto um ponto no canto superior esquerdo da janela gráfica
segments(x0=-1.5, y0=11.34, x1=-1.5, y1=11.6, lwd=5, col="grey", xpd=T)#ploto uma barra cinza no canto superior esquerdo da janela gráfica
text(c(-1.5,-1.5),c(11.4,12),cex=0.6,pos=4,labels=c("Abundância relativa", "Frequência de observação"),xpd=T)#adiciono textos em frente ao ponto e barra plotados anteriormente para finalizar a legenda do gráfico
}
**Help da Função censo.aed**
censo.aed package:bie5782_2014 R Documentation
Description:
Função para fazer uma análise exploratória de dados de censos. Essa função gera a representação gráfica da abundância relativa e frequência de observação, em porcentagem, de todas as espécies amostradas no censos.
A função também pode gerar a representação gráfica da abundância relativa e frequência de observação, em porcentagem, de apenas uma espécie por local de amostragem.
Usage:
censo.aed(data.frame, col.sp, ylim)
Arguments:
data.frame: data.frame de uma planilha de censos onde cada linha representa um censo diferente;
a primeira coluna contém o local onde o censo foi realizado;
a partir da segunda coluna cada coluna representa uma espécie e as linhas abaixo possuem o número de indivíduos avistados em cada censo;
col.sp: corresponde ao número da coluna que representa a espécie a ser analisada;
quando especificado será feita a análise de determinada espécie por local de amostragem;
caso esse argumento não seja especificado será feita uma análise de todas as espécies no geral.
ylim: corresponde aos limites do eixo y do gráfico que será gerado;
caso não especificado será usado o limite de 0 a 100.
Details:
A abundância relativa corresponde número de indivíduos de uma determinada espécie, calculado em relação ao número total de indivíduos de todas as espécies.
A frequência de observação, em porcentagem, corresponde a porcentagem dos censos em que a espécie foi avistada.
Warning:
Os NAs presentes no data.frame foram substituídos por zero.
Os NAs presentes na coluna especificada em col.sp foram substituídos por zero
Author:
Sartor, D.(sartordaniel@usp.br)
References:
Examples:
###Criando um data.frame com a simulação de censos###
Locais<-rep(c("Itu","Salto","Santos"), each=5)
teste<-as.data.frame(Locais)
teste$Sp1<-sample(0:10, 15, replace=T)
teste$Sp2<-sample(0:5, 15, replace=T)
teste$Sp3<-sample(0:12, 15, replace=T)
teste$Sp4<-sample(0:8, 15, replace=T)
teste$Sp5<-sample(0:4, 15, replace=T)
teste$Sp6<-sample(0:15, 15, replace=T)
teste$Sp7<-sample(0:13, 15, replace=T)
teste$Sp8<-sample(0:6, 15, replace=T)
teste$Sp9<-sample(0:10, 15, replace=T)
teste$Sp10<-sample(0:11, 15, replace=T)
censo.aed(teste)#análise de todas as espécies no geral
censo.aed(teste,col.sp=3)#análise da espécie representada pela coluna 3 feita por local de amostragem
censo.aed(teste,col.sp=6,ylim=c(0,75))#análise da espécie representada pela coluna 6 feita por local de amostragem. Limites do eixo y especificados.
**Arquivo para teste da função**
{{:bie5782:01_curso_atual:alunos:trabalho_final:sartordaniel:arquivo_teste_funcao.csv|}}