Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
Iniciei 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
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.
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 da estrutura das planilhas de entrada de dados ( 1: viva; 0: morta; NA: o indivíduo ainda não existia em um determinado tempo)
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.
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.
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).
Cadê o plano B?
É verdade, faltou. Acho que uma versão simplificada do plano A… que não retorne os gráficos por exemplo.
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)
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 }