Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2019:alunos:trabalho_final:pvfriedemann:funcao_explor.an

explor.an

explor.an <- function (x,y,tabela=TRUE,graph=TRUE)	{

   if(class(x)!="data.frame" && class(x)!="numeric" && class(x)!="integer" && x>0) { 	# verificar se x e 
     # da classe data.frame, numerico e inteiro
      stop("Cuidado! Somente classe data frame permitida com dados numericos > 0") # funcao para se nao for a 
        # classe correta
   }

    if(class(y)!="data.frame" && class(y)!="numeric" )	{ # verificar se y e da classe data.frame e 
      # numerico
      stop("Cuidado! Somente classe data frame permitida com dados numericos") # funcao para se nao for a classe 
        # correta
    }

    sum.ind.psg <- round(rowSums(x),digits=0) # soma dos individuos por paisagem
    
    num.ind.tot <- sum(sum.ind.psg) # numero total de individuos
    
    prop.ind <- round((sum.ind.psg)/(num.ind.tot),digits=3) # porporcao de individuos por paisagem
    
    bin <- x # transformar em dados binarios para somar o numero de especies
    
    bin[bin > 0] <- 1 # transformar em dados binarios para somar o numero de especies
    
    sum.spp.psg <- round(rowSums(bin),digits=0) # soma do numero de especies por paisagem
    
    num.spp.tot <- ncol(bin) # numero total de especies
    
    prop.spp <- round((sum.spp.psg)/(num.spp.tot),digits=3) # proporcao de especies por paisagem
    
    resumo <- data.frame(sum.ind.psg,prop.ind,sum.spp.psg,prop.spp) # colocando as informacoes do numero de 
           # individuos e especies por pisagem, bem como as porporcoes
           
	colnames(resumo) <- c("Individuals number","Ind proportion","Species number","Spp proportion") # nomeando 
           # as colunas do objeto 'resumo'
	
    if(tabela)	{	# se @ usuari@ quiser que uma tabela com as informacoes seja criada no diretorio a 
       # funcao seguira esses passos (tabela=TRUE)
       
      install.packages("MASS") # instala o pacote necessario para usar a funcao 'write.matrix'
      
      library(MASS) # ativa o pacote na area de trabalho atual
      
      write.matrix(resumo,file="tabela.csv",sep="\t") # cria uma tabela csv no diretorio com as informacoes do 
        # objeto 'resumo'
    }
	
    if (graph)	{	# se @ usuari@ quiser um grafico com a distribuicao das especies nas 
        # paisagens(graph=TRUE)
        
     spp <- as.matrix(x)	# transformando o dado x (data.frame) em matriz
     
     grad.var <- data.matrix(y)	# transformando em matriz numerica (as.matrix nao funcionou aqui)
     
     y.ord <- spp[order(grad.var[,1]),] # ordenando as paisagens pelo gradiente da variavel
     
     sum.p <- colSums(spp*grad.var[,1]/colSums(spp)) # calculando abundancia ponderada das spp nas paisagens
     
     spp.ord <- y.ord[,order(sum.p,decreasing=T)] # ordenando as especies por essa abundancia ponderada NAS 
        # PAISAGENS
        
     num.col <- as.matrix(spp.ord) # numero de colunas desta tabela serao as linha do grafico de distribuicao 
        # de spp
        
     par(mfrow=c(ncol(num.col)+2,1),mar=c(0.2,3,0.2,8),oma=c(3,2,3,6),font=1) # configura a janela onde sera 
        # plotado o grafico
        
     layout(matrix(1:(ncol(num.col)+1)),heights=c(3,rep(1,ncol(num.col)))) # configura na janela do grafico a 
            # linha onde sera plotado gradiente da variavel ambiental
            
     plot(sort(grad.var[,1]),axes=F,mfg=c(21,1),lwd=10,las=2,lend="butt",xaxt="n",type="h",
              ylim=c(min(grad.var),max(grad.var)))	# plotando o gradiente da variavel ambiental
		
     axis(side=2,at=c(min(grad.var[,1]),max(grad.var[,1])),las=2)	# plota o eixo vertical com os valores 
          # maximo e minimo da variavel ambiental
	 
     axis(side=3,at=c(1:nrow(num.col)),rownames(num.col),las=1,cex.axis=0.8)	# plota o eixo com o nomes dos 
        # sitios
        
     for(i in 1:ncol(num.col))	{	# inicia o ciclo que plota a informacao da abundancia ponderada das 
         # especies por paisagem
       barplot(num.col[,i],bty="l",axisnames=F,axes=FALSE) # plota os eixos horizontais com a abundancia ponderada 
          # das especies
	mtext(colnames(num.col)[i],side=3,line=-1,adj=1.3,cex=0.9)	# nomeia os eixos horizontais com as 
          # especies
	mtext("Species abundance",2,outer=T,line=-2)	# nomeia o eixo da abundancia das especies	
       }
     }
	return(resumo)
}
05_curso_antigo/r2019/alunos/trabalho_final/pvfriedemann/funcao_explor.an.txt · Última modificação: 2020/08/12 06:04 (edição externa)