====== 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|}}