Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2010:alunos:trabalho_final:jurdeluca:start

Juliana de Luca

dsc01998.jpg

Mestranda em Zoologia, Instituto de Biociências, USP. O título da dissertação: “História natural de Tapirus terrestris Linnaeus, 1758” (PERISSODACTYLA: TAPIRIDAE) na Estação Biológica de Boracéia: uso do espaço e sazonalidade em Floresta Ombrófila Densa“, orientada pela Profa. Dra. Renata Pardini.

Meus Exercícios

Proposta de Trabalho Final

Principal (Reformulada conforme comentários PI)

Em inventários de mastofauna utilizo uma série de gráficos, índices de diversidade e de similaridade para produzir um diagnóstico da fauna local. Assim pretendo, utilizando como objeto de entrada uma matriz de abundância relativa das espécies, de acordo com a unidade amostral (nome das espécies nas linhas X nome das unidades amostrais nas colunas), produzir uma função que retorne: 1) índice de Shannon e de Simpson (incluindo equabilidade e índice máximo), com os resultados expressos em uma tabela e em dois gráficos plot (um gráfico para cada um dos índices; o índice de acordo com a unidade amostral); 2) índice de similaridade de Bray-Curtis para as unidades amostrais, expressos em uma matriz de distâncias; 3) gráficos de barras para a abundância relativa das espécies expressa em porcentagem (%)(um gráfico geral para a comunidade, incluindo todas as unidades amostrais, e gráficos separados para cada unidade amostral) e uma tabela com estes valores (para a comunidade e para cada unidade amostral).

Comentários PI

Boa proposta, mas algumas coisas não ficaram claras para mim, principalmente quanto à saída, pe.x:

  • Gráficos de diversidade em função de unidade amostral?
  • Cluster: com um índice de similaridade e um algoritmo de agrupamento fixos ou o usuário pode escolher?

Talvez esteja claro para você, mas só comece a programar quando definir clara e precisamente o input e output da função. Esta é a etapa crítica da programação.

Plano B (descartado)

Realizar uma função que englobe os resultados descritos acima, mas a partir de um data frame de dados brutos (data de registro, especie, unidade amostral, metodologia de registro) que retorne também uma curva do coletor.

Comentário PI

Bom, aqui tb não está muito claro o formato dos dados de entrada. Também é importante deixar bem claro no help que formato é este ( o que é cada coluna, que tipo de variável pode ter (numérica, lógica, string), a ordem das colunas, etc). Para evitar uso incorreto, sua função deve indluir algumas verificações deste formato e avisar o usuário em caso de erros.

Página de Ajuda

 
diagnostico.fauna                     package:nenhum                    R Documentation





 Valores de índices de diversidade (Shannon e Simpson) e de similaridade (Bray-Curtis) e valores de abundância relativa (%) de espécies.




Description:

     A partir de uma matriz de abundância relativa de espécies (de acordo com a unidade amostral), a função elabora gráficos de barras que indicam  a porcentagem da abundância relativa de cada espécie para toda a comunidade e, separadamente, para cada unidade amostral (retornando os respectivos valores em uma tabela); produz gráficos plots para cada um dos índices de Shannon e de Simpson (de acordo com as unidades amostrais), retornando os valores dos índices, dos índices máximos e de equabilidades numa matriz; e produz uma matriz de distância para os valores do índice de similaridade de Bray-Curtis.

Usage:

     diagnostico.fauna(x)

Arguments:

 x:  Matriz. Matriz de abundância relativa das espécies (número de espécies) de acordo com a unidade amostral. Nomeando as linhas deve estar designado o nome das espécies e, nomeando as colunas, o nome (ou sigla) de cada unidade amostral. Os nomes das espécies e das unidades amostrais devem estar tal qual devem ser transcritos para os gráficos. Para as unidades amostrais, dê preferência para nomes curtos ou sintéticos.

Details:

    Caso se torne necessário, é possível modificar alguns dos parâmetros gráficos para adequar a um modelo pretendido. Isso pode ser feito dentro da própria função, dentro dos comandos par(), barplot() e plot(). Atente para modificar somente os parâmetros gráficos (ex. mar, col, font, etc)!!!

Value:

     A função retorna a seguinte lista de valores: 

  1 : Matriz com valores do índice de Shannon, índice máximo de Shannon, Equabilidade para o índice de Shannon, Índice de Simpson, índice máximo de Simpson (igual à riqueza total) e equabilidade para o índice de Simpson, para cada unidade amostral.

  2 : Matriz de distância para os valores do índice de similaridade de Bray-Curtis.
  
  3 : Tabela com valores da abundância relativa de cada espécie na comunidade (i.e. incluindo todas as unidades amostrais)
  
  4 : Tabela com valores de abundância relativa de cada espécie de acordo com a unidade amostral.

     
Warning:

      A função só opera sobre um objeto da classe MATRIX. Quando não houve o registro de uma espécie em determinada unidade amostral, explicitar o valor 0 (zero) na matriz (objeto de entrada da função).
      

Author(s):

     Juliana Ranzani de Luca
     jurdeluca@yahoo.com

References:

     BEGON, M., Townsend, C. R. & Harper, J. L. 2006. Ecology From Individuals to Ecosystems. Editora Blackwell. Quarta edição.
     
     SHANNON, C. E., and W. Weaver. 1949. The Mathematical Theory of Communication. Urbana, University of Illinois Press, 117 pp.
     
     SHANNON, C.E. 1948. "A mathematical theory of communication". Bell Syste Technical Journal 27: 379-423 and 623-656. 
     
     Gotelli, N. J. and Ellison, A. M. (2004) A primer of ecological statistics. Sinauer Associates.

    

See Also:

     barplot(), plot (), par (), matrix (), cluster (package).

Examples:

     >para=read.table(“pequenos.mamiferos.para.txt”, header=T, row.names=1,sep=“\t”,dec=”.”) 
     
     >diagnostico.fauna(para)

     >class(para) 

     >para←as.matrix(para) 
     
     >diagnostico.fauna(para)

     >colnames(para)←c(“1A”,”1B”,”1C”,”1D”,”1E”,”2A”,”2B”,”2C”) 

     >head(para) 

     >class(para) 
     
     >diagnostico.fauna(para)

Código da Função

### FUNÇÃO JULIANA R. DE LUCA ###

diagnostico.fauna←function(x)

{
if(is.matrix(x)==TRUE)
	{
	N<-apply(x,2,sum)### Indices de diversidades Shannon###
	numlin<-nrow(x)
	numcol<-ncol(x)
	matriz<-matrix(rep(N,each=numlin), nrow=numlin,ncol=numcol)
	Prop<-x/matriz
	NA->Prop[Prop=="0"]
	proplog<-log(Prop)
	Q<-Prop*proplog
	H1<-apply(Q,2,sum, na.rm=T)
	H<- -H1
	ab<-x ## Hmax##
	1->ab[ab>0]
	S<-apply(ab,2,sum)
	Hmax<-log(S)	
	J<-H/Hmax ## Equabilidade Shannon ##
	D1<-Prop^2 ### Indice de diversidade de Simpson ###
	D<-apply(D1,2,sum,na.rm=T)
	S1<- 1/S ## Equabilidade simpson ##
	S2<-matrix(rep(S1,each=nrow(D1)),nrow=nrow(D1),ncol=ncol(D1))
	E1<-D1*S2
	E<-apply(E1,2,sum,na.rm=T)
	Dmax<-S ## Indice maximo de Simpson ##
	unid.amos<-colnames(x)## Graficos Plot indices de diversidade ##
	x11()
	plot(H,ylab="Shannon (H')",xlab="Unidade Amostral", las=1,xaxt="n",main="Índice de diversidade",lwd=6)
	axis(1,label=unid.amos, at=1:length(unid.amos))
	x11()
	plot(D,ylab="Simpson (D)",xaxt="n",xlab="Unidade Amostral", main="Índice de diversidade",lwd=6)
	axis(1,label=unid.amos, at=1:length(unid.amos))
	at<-t(x)## Indice de similaridade de Bray-Curtis##
	n<-nrow(at)
	BrayCurtis<-matrix(NA,n,n)
	for(k in 1:n)
		{
	for(j in 1:n)
		{
		numerador<-sum(abs(at[k,]-at[j,]))
		denominador<-sum(at[k,]+at[j,])
		BrayCurtis[k,j]<- numerador/denominador
		}
		}
	colnames(BrayCurtis)<-rownames(at)
	rownames(BrayCurtis)<-rownames(at)
	bray<-as.dist(BrayCurtis)
	a1=apply(x,1,sum)##Abundancia relativa geral###
	a2=sum(a1)
	a3=100*a1/a2
	a4=a3[order(a3)]
	x11()
	par(mar=c(14,6,3,2), cex=0.8)
	barplot(a4, las=2, ylab="Abundância Relativa (%)",main="Comunidade",col=rgb(0.3,0.4,1,0.2))
	b1=nrow(x)## Abundancia relativa por área ##
	x->a0
	b2<-apply(a0, 2,sum)
	b3<-100*a0
	b4<-matrix(c(rep(b2,each=b1)), nrow=b1,ncol=ncol(a0), byrow=F)
	b5<-b3/b4
	NA->b5[b5==0]
	b6=t(b5)
	b7=nrow(b6)
	ua<-row.names(b6)
	for (i in 1: dim(b6)[1]) 
		{
		x11(b7)
		par(mar=c(14,6,3,2),cex=0.8)
		barplot(sort(b6[ i , ]),las=2, ylab="Abundância Relativa (%)",main=ua[i],col=rgb(0.3,0.4,1,0.2)) 
		}
	matriz.result<-matrix(data=c(H,Hmax,J,D,Dmax,E),byrow=T,ncol=ncol(x),nrow=6)## Resultados ##
	rownames(matriz.result)<-c("H'","Hmax","J","D","Dmax/S","E")
	colnames(matriz.result)<- unid.amos
	cat('\n LEGENDA RESULTADOS\n\n[1] Índices de Diversidade:\n      H -índice de Shannon\n      Hmax -valor máximo para o índice de Shannon\n      J -equabilidade para o índice de Shannon\n      D -índice de Simpson\n      Dmax/S - valor máximo para o índice de Simpson ou riqueza total\n      E -equabilidade para o índice de Simpson\n\n[2] Índice de similaridade de Bray-Curtis\n\n[3] Abundância relativa (%) na comunidade\n\n[4] Abundância relativa (%) por unidade amostral.\n\n')
	return(list(matriz.result,bray,a4,b6))
	}
	else
		{
		cat('\n "Erro: Objeto de entrada deve ser uma matriz de abundâcia relativa, com o nome das espécies nas linhas e o nome das unidades amostrais nas colunas" \n')
		}	
}

Arquivo da Função

Arquivo para teste da Função

Dados de abundância relativa de um inventário de pequenos mamíferos na região da Serra dos Carajás, Estado do Pará, em dois fragmentos florestais (1 e 2), com 5 unidades amostrais no fragmento 1 (A, B, C, D e E) e 3 unidades amostrais no fragmento 2 (A, B e C).

pequenos.mamiferos.para.txt

Utilize o seguinte código para o arquivo ser carregado corretamente e ser utilizado dentro da função:

para=read.table(“pequenos.mamiferos.para.txt”, header=T, row.names=1,sep=“\t”,dec=”.“)

class(para)

para←as.matrix(para)

colnames(para)←c(“1A”,”1B“,”1C“,”1D“,”1E“,”2A“,”2B“,”2C“)

head(para)

class(para)

05_curso_antigo/r2010/alunos/trabalho_final/jurdeluca/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)