Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2010:alunos:trabalho_final:daniela.zanelato:start

Daniela Zanelato

dsc02509.jpgIniciei meu mestrado em Ecologia neste ano, pelo LabTrop, com o título “Demandas conflitantes entre sobrevivência e crescimento em ambientes com diferentes disponibilidades de recurso e sua interação com a micro-biota do solo”. Minha área de estudo são duas florestas de restinga, na Ilha do Cardoso, litoral sul de São Paulo.

Link para minha página no LabTrop: Dani_LabTrop

Meus Exércícios

Proposta de Trabalho Final

Plano A

Contextualização

O sucesso reprodutivo final das plantas depende de uma série de fases consecutivas (Nathan & Muller-Landau 2000), sendo que o fluxo de sementes e o estágio de plântula os estágios mais críticos no ciclo de vida das plantas, (Terborgh 1990). Além disso, estudos sobre o recrutamento de plântulas permitem aprofundar o entendimento dos fatores que geram a diversidade em florestas tropicais (Harms et al 2000).

Neste contexto, descrever a comunidades de plântulas de em diferentes áreas, e para uma mesma área em diferentes intervalos de tempo é o primeiro passo para se procurar explicações sobre quais fatores atuam sobre a estruturação de plântulas destas áreas. Alguns parâmetros básicos para se descrever a comunidade de plântulas são: n° de indivíduos, nº de espécies, e n° médio de espécies por amostra, além do índice de diversidade de Shannon. Além disso, para comparação da diversidade de plântulas entre diferentes é bastante útil a construção de diagramas de Whitaker.

Proposta

Desse modo, minha proposta é construir uma função que gere esta descrição básica (n° de indivíduos, nº de espécies e n° médio de espécies por amostra) da comunidade de plântulas de uma determinada área, para cada intervalo de tempo, permitindo a comparação entre diferentes áreas. E ainda que gere diagramas de Whitaker para cada intervalo de tempo.

Uma função com estas características é bastante útil, principalmente porque as planilhas de entrada de dados contém milhares de linhas (indivíduos) e várias colunas (re-censos), e a cada re-censo (geralmente realizados a cada 6 meses) aumenta muito a quantidade de dados. No LabTrop já temos planilhas de acompanhamento de parcelas de plântulas arbóreas com 4 intervalos de tempo, para duas áreas de floresta de restinga, geradas por Faria (2008), e uma parte do meu mestrado pretende continuar estes censos.

Exemplo

Exemplo da estrutura das planilhas de entrada de dados ( 1: viva; 0: morta; NA: o indivíduo ainda não existia em um determinado tempo) exemplo_tabela.jpg

Bibliografia

Nathan, R. & Muller-Landau, H. C. 2000. Spatial patterns of seed dispersal, their determinants and consequences for recruitment. Trends in Ecology and Evolution 15(7):278 285.

Terborgh, J. 1990. Seed and Fruit dispersal – Commentary. In: Bawa, K. S. Hadley, M (eds.). Reproductive Ecology of Tropical Forest Plants. Volume 7. Pp. 181-190. Paris: UNESCO

Harms, K. E., Wright, S. J., Calderón, O., Hernández, A. & Herre, E. A. 2000. Pervasive density-dependent recruitment enhances seedling diversity in a tropical forest. Nature. 404:493-495.

Faria, M. B. B. C. 2008. Diversidade e regeneração natural de árvores em Florestas de Restinga na Ilha do Cardoso, Cananéia, SP, Brasil. Dissertação de mestrado. Instituto de Biociências. Universidade de São Paulo, São Paulo, SP.

Comentários PI

Muito boa. Só não ficou claro quais seriam as saídas. Isto é importante pq há um monte de possibilidades (gráficos, resumos numéricos, etc), cada uma delas com muitos formatos possíveis (p.ex. vários gráfico em uma paǵina, etc). Então, antes de começar, certifique-se que vc tem clareza do que quer retornar ao usuário.

Resposta DZ

As saídas são resumos numéricos (“tabela” com os parêmatros retornados em cada linha e as colunas sendo os intervalos de tempo) e gráficos (acho que é melhor um em cada página, porque se forem muitos vai ficar ruim de ler).

Plano B

Comentários PI

Cadê o plano B?

Resposta

É verdade, faltou. Acho que uma versão simplificada do plano A… que não retorne os gráficos por exemplo.

Página de Ajuda

descr.basica        package:bie5782_curso2010       R Documentation

                 Descrição Básica da Comunidade de Plântulas 


Description:

      Produz uma matriz com a descrição básica (número de indivíduos, 
      número espécies, número médio de indivíduos e número médio de 
      espécies) para cada intervalo de tempo, além de Diagramas de 
      Whittaker.

Usage:

     descr.basica(x) 


Arguments:

 x:data.frame em que cada linha representa um indivíduo;
	a primeira coluna contém a data em que o 
indivíduo apareceu pela primeira vez;
	a segunda coluna contém a identificação 
da parcela dentro da Parcela Permanente;
	a terceira coluna contém o número da parcela;
	a quarta coluna contém o número da subparcela;
	a quinta coluna contém o número do indivíduo;
	a sexta coluna contém o nome da espécie;
	a sétima coluna contém o nome da família;
	a oitava coluna em diante contém um número que 
indica presença ou ausência do indivíduo em cada intervalo
de tempo (censo);  


Details:

     Usar 1 para indivíduo vivo, 0 para morto, NA para 
     quando o indívíduo ainda não existia
     num determinado intervalo de tempo 


Value:

     Uma matriz e uma série de gráficos são gerados. 
     Na matriz as colunas representam cada intervalo de 
     tempo e as linhas representam: o número de indivíduos, 
     número de espécies, número médio de indivíduos e desvio 
     padrão, número médio de espécies e desvio padrão. 
     O gráfico de cada intervalo de tempo é salvo em 
     um arquivo .jpg

Warning:

  In xy.coords(x, y, xlabel, ylabel, log) :
  N y values <= 0 omitted from logarithmic plot
  
  (sendo N o número de zeros omitidos em cada gráfico, 
  devido à escala logarítimica)


Author
     Daniela Zanelato


References:

     Faria, M. B. B. C. 2008. Diversidade e regeneração 
     natural de árvores em Florestas de Restinga na Ilha do
     Cardoso, Cananéia, SP, Brasil. Dissertação de mestrado.
     Instituto de Biociências. Universidade de São Paulo, 
     São Paulo, SP.  
     

Examples:

read.table("plra.txt",header=T,sep="\t")->plantula
head(plantula)
descr.basica(plantula)

Código da Função

descr.basica<-function(x)
	{
	x[x==0]<-NA  # substitui zeros por NAs, isso facilita lá na frente
	resultados<-list()  # crio objeto onde vão resultados de objetos intermediários
	resul.final<-matrix(NA,nrow=4, ncol=dim(x)[2]-7) # matriz de saída
	colnames(resul.final)<-paste("Censo",0:(dim(x)[2]-8),sep="")
	rownames(resul.final)<-c("Nº total de Indivíduos","N° total de Espécies","N° Médio de Indivíduos","N° Médio de Espécies")
	
	for(i in 8:dim(x)[2])
		{
		resultados[[i-7]]<-table(x$Espécie,x[,i])
		}


		resultados2<-list()    ## calcula nº total de indivíduos para cada tempo
		for(i in 1:(dim(x)[2]-7))
			{
			resultados[[i]]->f
			soma.f<-sum(f)
			resultados2[[i]]<-soma.f
			}


		resultados3<-list()   ## calcula nº total de sp para cada tempo
		for(i in 1:(dim(x)[2]-7))
			{
			resultados[[i]]->f
			f[f>1]=1
			soma.f<-sum(f)
			resultados3[[i]]<-soma.f
			}
		

		resu<-data.frame(par=aggregate(x[,8], by=list(x$Parcela),sum,na.rm=T)[,1]) # nº médio ind. em cada tempo
		for(i in 8:dim(x)[2])
			{
			resu[,i-6]<-aggregate(x[,i], by=list(x$Parcela),sum,na.rm=T)[,2]
			}
			resu2<-data.frame(med=(resu)[1,2])
			for(i in 2:dim(resu)[2])
				{
				resu2[,i]<-round(mean(resu[,i]),digits=2)
				}
		resu2<-resu2[,-1]


		resu.sd<-data.frame(med=(resu)[1,2])  ## desvio padrão do n° médio ind. em cada tempo
		for(i in 2:dim(resu)[2])
			{
			resu.sd[,i]<-round(sd(resu[,i]),digits=2)
			}
		resu.sd<-resu.sd[,-1]

		resu3<-list()  ##  N° médio sps em cada tempo
		for(i in 8:dim(x)[2])
			{
			resu3[[i-7]]<-table(x$Espécie,x$Parcela,x[,i])
			}
			resu4<-list()
			for(i in 1:(dim(x)[2]-7))
				{
				m<-resu3[[i]]
				m[m>1]=1
				s<-apply(m,2,sum)
				resu4[[i]]<-s
				}
			resu5<-list()  
			for(i in 1:(dim(x)[2]-7))
				{
				n<-resu4[[i]]
				s2<-mean(n)
				resu5[[i]]<-round(s2,digits=2)
				}

		resu6<-list()    ## desvio padrão do nº médio de sps em cada tempo
			for(i in 1:(dim(x)[2]-7))
				{
				n<-resu4[[i]]
				s3<-sd(n)
				resu6[[i]]<-round(s3,digits=2)
				}		

		for(i in 1:(dim(x)[2]-7)) # substitui objetos intermediários no objeto de saída
			{
			resul.final[1,i]<- resultados2[[i]][1]
			}

		for(i in 1:(dim(x)[2]-7))
			{
			resul.final[2,i]<- resultados3[[i]][1]
			}
		
		for(i in 1:(dim(x)[2]-7))
			{
			resul.final[3,i]<-paste(resu2[,i],"dp",resu.sd[,i])
			}

		for(i in 1:(dim(x)[2]-7))
			{
			resul.final[4,i]<-paste(resu5[[i]][1],"dp",resu6[[i]][1])
			}

		n.col=dim(x)[2]     ### Gráficos!
		n.lin=dim(x)[1]
		resultados=data.frame(sp=aggregate(x[,8],by=list(x$Espécie),sum,na.rm=T)[,1])
		for(i in 8:dim(x)[2])
			{
			resultados[,i-6]<-aggregate(x[,i],by=list(x$Espécie),sum,na.rm=T)[,2]
			}
			resultados[,dim(resultados)[2]+1]<- seq(1:dim(resultados)[1])
			vetor0<-resultados[,dim(resultados)[2]]
			res<-data.frame(resultados)
			for(i in 1:dim(resultados)[2])
				{
				res[i]<-sort(resultados[,i],decreasing=T)
				}
				jpeg(filename="graf%02d.jpg")
				for(i in 2:(dim(res)[2]-1)) # como faço pra ciclar fazendo vários gráficos?
					{
					par(bty="l",pch=16)
					plot(res[,i]~vetor0,log="y",xlab="Espécies", ylab="Nº de Indivíduos",type="b",main=paste("Censo",i-2))
					}
				dev.off()
	
	cat("\t","ATENÇÃO:Os gráficos de cada censo estão salvos em um arquivo .jpg, dentro do seu diretório de trabalho\n","\t","Como há espécies com nenhum indivíduo em algum dos censos\n","\t", "e os eixos y estão em log: podem aparecer as seguintes mensagens warning\n\n\n" )
	return(resul.final)  ### Avisos
		
	}

Arquivo da Função

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