Tabela de conteúdos

Irina Birskis Barros

img_0171.jpg Mestranda em Ecologia, Instituto de Biociências, USP

O título da minha tese é “Dinâmica evolutiva de anéis miméticos em comunidade ecológicas heterogêneas”, orientado pelo Prof. Paulo Roberto Guimarães Jr (o “Miúdo”).

Exercícios Resolvidos

Exercício 1 - Introdução ao R introd..r

Exercício 3 - 103.4 Lendo e salvando seus dados 103.4_lendo_e_salvando_seus_dados.r

Exercício 4 - Análises Exploratórias exerci_cios_4_-_ana_lises_explorato_rias.r

Exercícios 5* - Criação de Gráficos exercicios_5_.r

Exercícios 6* - Teste de Hipótese e Simulação exerci_cio_6.r

** Editei o ex. 5 e 6 depois, tinham dado erro.

Exercícios 7a - Regressão Linear Simples exercicio_7_-_regressao_linear_simples.r

Exercícios 7b - Regressão Múltipla7b_arrumado_-_exerci_cios_de_regressa_o_mu_ltipla.r

Exercício 8 - Reamostragem e Simulação exericio_8.r

Exercício - 9.2 Exercício Análise exploratória simultânea de duas variáveis exercicio_9.2.r

Propostas de Projeto

(Não tinha idéia se minhas propostas estavam boas ou ruins, então postei tudo que pensei. :-/)

Proposta A

A Lista Vermelha de espécies ameaçadas da IUCN atualmente é o recurso mais bem detalhado sobre o estado de conservação global de plantas e animais. As avaliações das espécies é normalmente feita em uma oficina, em que muitos especialistas da área se juntam para discutir a vulnerabilidade de um táxon, espécie por espécie. Porém, para tentar diminuir ao máximo as abstrações desse processo, há uma ficha padrão de avaliação que se deve seguir. São necessários para essa ficha: dados sobre dieta (para saber se o animal tem uma dieta especialista), tamanho dos indivíduos (para saber tamanho máximo atingindo e média para espécie), tamanho de ninhada (para valor médio de ninhada), habitat utilizado pela espécie (para saber se é especialista ou generalista) e localidades (para gerar mapas de distribuição). A partir de todos esses dados levantados os especialistas podem começar a discutir o quão ameaçada está aquela dada espécie. Acredito que ter uma função em que essas informações sejam dadas para cada espécie, agilizaria muito nos dias que ocorrem as oficinas. Dessa maneira, pensei em criar uma função em que teria como input um data.frame com linhas referentes as espécies e colunas referentes a dieta (cada coluna um tipo de diferente de tipo de presa e nas linhas a quantidade de presa ingerida), tamanho do indivíduo, tamanho da ninhada encontrada, habitat utilizado e localidades (lat e longitude). Na função haveria um argumento para dizer a partir de quanto a espécie seria considerado especialista (ex: 70%, 80%). Como output a função me daria um mapa da espécie a partir dos pontos de localidade (acredito que isso já exista no R, então não sei se é uma melhor opção eu fazer ou procurar uma função que já faça isso), e uma lista dizendo se a espécie é generalista ou especialista em dieta, max e média do tamanho de corpo encontrado, média do tamanho da ninhada e quantidade de habitats utilizados.

Além disso: - Pensei que seria interessante que houvesse uma coluna no input que permitisse colocar dados sobre possíveis ameaças sofridas pelas espécie e também sobre tamanho populacional e que esses comentários aparecessem no output. - Pensei também que ajudaria bastante se desse para retornar no output se a espécie já foi avaliada pela IUCN (sim ou não) e, se sim, em qual categoria estava e quando foi avaliado. Esses dados existem no site da IUCN (http://www.iucnredlist.org/).

Proposta B

Vivemos num momento de crise hídrica. A reserva de Cantareira, por exemplo, principal sistema de abastecimento da região de São Paulo e de Campinas, opera com o volume morto desde o início do segundo semestre do ano passado. Em consequência, a SABESP até adotou a redução da pressão da rede para economizar água. Porém, muito moradores ainda não tem idéia do quanto gastam de água em seu dia-a-dia, reduções foram feitas, mas na maioria das vezes, sem ter saber em L o quanto que reduziram ou utilizavam. Dessa maneira, pensei em criar uma função para saber o quanto uma casa gasta para cada função realizada. A idéia é ter como um input o número de pessoas na casa, o número em média de quantos banho cada um toma, quantas refeições fazem em casa por dia (para saber a quantidade de louça) e se tem máquina de lavar (roupa e louça). Como output teríamos a quantidade de gasta em cada atividade.

Além disso: - Pensei em colocar no output “opções” para uma redução de até 30% no consumo de água, mas ainda não sei como faria isso..

Proposta C

Diversas estratégias têm sido propostas para classificar as espécies em diferentes categorias de raridade, levando em consideração diversos fatores, tais como potencial reprodutivo, singularidade taxonômica e/ou vulnerabilidade a perturbações. Uma das iniciativas teóricas com maior impacto para o entendimento atual sobre os padrões de raridade foi a de Deborah Rabinowitz, que propôs, na década de 1980, que a raridade de uma espécie podia ser descrita sob três aspectos (RABINOWITZ, 1981; RABINOWITZ et al., 1986): (1) sua distribuição geográfica, (2) seu grau de especificidade de habitat e (3) sua densidade populacional (ver tabela 1 – a categoria G seria a espécie mais rara e a B a menos). Além disso, estudos recentes têm mostrado que os padrões de raridade possuem uma forte correlação positiva com o risco de extinção estimado pelos métodos tradicionais. Dessa maneira, pretendia criar uma função que permitisse relacionar o grau de raridade das espécies de acordo com as categorias da Rabinowitz com o grau de ameaça avaliado pela IUCN (http://www.iucnredlist.org/)

Tabela 1 – As oito formas possíveis de raridade conforme Rabinowitz (1981) e Rabinowitz et al. (1986). Os fatores intrínsecos aparecem em negrito.

tabela_corrigida.pdf

INPUT – Um data.frame (linhas dados para espécies, com colunas para distribuição, habitat, densidade populacional)

FUNÇÃO – Ela leria por espécie, tendo um argumento para a quantidade de habitats ocupados que seriam considerados “amplo”, o mesmo para tamanho de população e distribuição geográfica. Buscaria no site da IUCN a categoria para cada espécie

OUTPUT – Geraria uma correlação entre o grau de raridade e a categoria da IUCN.

Proposta D

(Esse me ajudaria bastante, mas não sei se é muito simples pra função…)

Pensando na idéia do “Niche breadth hypothesis”, em que diz que espécies abundantes devem ser mais generalistas e espécies especialistas mais raras a idéia seria juntar a analise de categoria de raridade proposto por Rabinowitz (citado no Plano C) e comparar com a especificidade de dieta (citado no Plano A) para ver se há uma correlação entre as duas.

REFERÊNCIAS

RABINOWITZ, D. 1981. Seven Forms of Rarity. In The Biological Aspects of Rare Plant Conservation, H. Synge (ed). Wiley, Chichester.

RABINOWITZ, D.; CAIRNS, S.; DILLON, T. 1986. Cap 9: Seven Forms of Rarity and Their Frequency in the Flora of the British Isles. Pp. 182 -204 in Conservation Biology: the science of scarcity and diversity, ed. M. E. Soulé. Sunderland, MA: Sinauer Associates.

Análise das funções

Oi Orgi! Legal, várias idéias.

Como você mencionou que a proposta D seria de grande utilidade pro seu trabalho, acho que seria interessante formalizar esta proposta um pouco melhor, indicando os inputs e outputs.

Beijo

Puh

Arrumando a Proposta

Olá Puh!

Então, para tentar explicar melhor a proposta D.

O input seria um dataframe, no qual as linhas seriam dados de indivíduos e haveria colunas referentes espécies, localidade (latidude e longitude), habitat, densidade densidade populacional e dieta (cada coluna um tipo de diferente de tipo de presa e nas linhas a quantidade de presa ingerida para aquele dado indivíduo). A função teria como argumento os valores referentes a dicotomização das categorias de Rabinowitz e também para especificidade de dieta (e.g. 70%, 80%). A função primeiro me daria em que categoria de raridade (A,B,C,D,E,F,G ou H) cada espécie estaria. Depois faria a correlação entre a forma de dieta (especialista ou generalista) para saber se espécies generalistas são mesmo mais abundantes como prediz a idéia do “Niche breadth hypothesis”. Ou seja, como output teria um índice de correlação entre RARIDADE X ESPECIFICIDADE DA DIETA, sendo essa uma variável categórica (especialista ou generalista - referente ao valor que colocarei no argumento da função) e também uma lista referente a cada espécie e a categoria em que se enquadrou.

Ficou mais claro?! É possível?!

Uma dúvida: Eu poderia já dar a área de distribuição para cada espécie no input, mas imagino que para deixar a função “mais geral”seria mais interessante colocar como input os dados referentes a localidades e gerar o dado área de distribuição da espécie (e se der, até um mapa!). Imagino que já existam funções que façam isso… mas a dúvida seria se é melhor eu tentar fazer isso “na unha”, ou se já pego essa função e coloco dentro da minha…

Beijo, Puh! E valeu a ajuda!

Manda bala! Você pode fazer como for melhor para você… criar uma função para gerar distribuição ou pegar uma existente! 8-)

Paula Puh

Explicando: Quando estava fazendo minha função, percebi que minha proposta (e até parte do meu trabalho) não fazia muito sentindo. Rabinowitz usa “especialidade de habitat”como uma das variáveis para categorizar raridade e isso, de certa forma, já se refere a uma medida de amplitude de nicho. Correlacionar uma categoria que utilizou especificidade de habitat com especificidade de dieta não seria algo muito válido. Dessa maneira, achei que seria interessante comparar as categorias de raridade utilizando essas duas variáveis para ver se o resultado seria o mesmo. Ela nova função tem o mesmo input colocado na proposta D, mas ela gera um data.frame com três colunas. Na primeira coluna do data.frame estão as espécies de interesse, na segunda as categorias de Rabinowitz calculadas a partir de dados de habitats e, na terceira as categorias de Rabinowitz calculadas a partir de dados de dieta.

bicho.raro               package:adehabitatHR               R Documentation

~~ Cálculo das Categorias de Raridade de Rabinowitz ~~

Descrição:

A função fornece duas categorias de raridade de Rabinowitz. Uma, da maneira tradicional, utilizando (1) sua distribuição geográfica, (2) seu grau de especificidade de habitat e (3) sua densidade populacional. Outra, substituindo os dados de especificidade de habitat por dados de especificidade de dieta. 

Uso:

bicho.raro(data, hab, diet, pop, dist) 	

Argumentos:

data		data frame com os dados brutos. 
hab		argumento numérico. Indicando o número a partir do qual a espécie será considerada generalista de habitat
diet		argumento numérico. Indicando o número a partir do qual a espécie será considerada especialista de dieta
pop		argumento numérico. Indicando o número a partir do qual a espécie será considerada com uma população grande. 
dist		argumento numérico. Indicando o número a partir do qual a espécie será considerada com uma distribuição ampla


Detalhes:
O data frame com os dado brutos deve ser importado utilizando header = TRUE. 
A primeira, segunda e terceira coluna do data.frame devem ser “especie”, “X”, “Y”, respectivamente. Além disso deve possuir uma coluna “habitat”, “tam.pop” e outras referentes à dieta, sendo elas: “mam”, “aves”, “rept”, “anf”, “peixe”e “inver”. 
 

Valor:
RARIDADES: retorna um data.frame com duas colunas. A primeira é o indicie de raridade de Rabinowitz calculado com dados de habitat para cada espécie. A segunda é o índice de raridade de Rabinowitz calculado com dados de dieta. 
“DD”refere-se a “Deficient Data”, ou seja, que faltam dados para calcular o índice para essa espécie. 
 
Author(s):

Irina Birskis Barros 
irina.bbarros@gmail.com


References:
RABINOWITZ, D. 1981. Seven Forms of Rarity. In The Biological Aspects of Rare Plant Conservation, H. Synge (ed). Wiley, Chichester.
RABINOWITZ, D.; CAIRNS, S.; DILLON, T. 1986. Cap 9: Seven Forms of Rarity and Their Frequency in the Flora of the British Isles. Pp. 182 -204 in Conservation Biology: the science of scarcity and diversity, ed. M. E. Soulé. Sunderland, MA: Sinauer Associates.

See also:
package:adehabitatHR   
Para calcular a distribuição da espécie são necessárias pelo menos 5 coordenadas geográficas. 

Exemplos:

library(dehabitatHR)

X = read.table(“dados”, sep=“,”, head=T, as.is=T)

bicho.raro(X, 3, 0.7, 100, 40)

bicho.raro(Y, 2, 0.6, 200, 90)
bicho.raro <- function(data, hab, diet, pop, dist)

{ 
	####Verificando os argumentos####
	
	if(missing(data))    stop("Precisa dos dados!")
	if(missing(hab))    stop("Quando a espécie será especialista/generalista de habitat?")
	if(missing(diet))    stop("Quando a espécie será especialista/generalista em dieta?")
	if(missing(pop))    stop("Quando que a espécie será pequena/grande?")
	if(missing(dist))    stop("Quando que a espécie terá ampla/restrita distribuição?")
  #Parar a função caso "data" não seja um data.frame
	if(class(data)!="data.frame") stop("'Data' deve ser um data.frame")
	# Parar a função caso a coluna habitat do data não estiver como categórica)
	if(class(data$habitat)!= "factor") stop("A coluna de habitat deve ser fator")
  if(class(data$tam.pop)!= "numeric") stop("A coluna 'tam.pop'deve ser numérica")
	# Parar caso diet não estiver entre 0 e 1
  if(diet<=0|diet>1) stop("O valor diet tem que ser entre 0 e 1")
  
	######### PENSADO RARIDADE COM HABITAT ############################
  
  ###Analisando cada variável###
  
  ###Separando os dados do data.frame por espécie 
	
	nome.sp <- unique(data$especie) #vendo todas as espécies
	
	## Criando um novo data.frame para raridade.hab 
	
	raridade.hab <- data.frame(c(nome.sp))
	
	###Referente ao número de habitats
	
	##Criando uma coluna no data.frame para especialista de habitat
	
	raridade.hab$habitat <- rep((NA), times=length(nome.sp))
	
	##Avaliando a quantidade de habitat para cada espécie 
	
	sp <- list(1:length(nome.sp))
	habitat <- list(1:length(nome.sp))
	n.habitat <- list(1:length(nome.sp))
	na.habitat <- list(1:length(nome.sp))
	d.na.habitat <- list(1:length(nome.sp))
	num.habitat <- list(1:length(nome.sp))
  resultado.habitat <- list(1:length(nome.sp))
  
	for (i in 1:length(nome.sp))
	{
		sp[[i]] <- data[data$especie==nome.sp[i],]
		habitat[[i]] <- unique(sp[[i]]$habitat) #quais habitats por sp
		n.habitat[[i]] <- length(habitat[[i]]) #quantos habitats por sp
    
    
		#verificando o número de habitats do data.frame para cada espécie
		na.habitat[[i]] <- na.omit(sp[[i]]$habitat) 
		d.na.habitat[[i]] <- as.data.frame(na.habitat[[i]])
		num.habitat[[i]] <- length(d.na.habitat[[i]][,1])
          
  	
      if(num.habitat[[i]]==0)
       {
        resultado.habitat[[i]] <- c("DD") 
        }
  
      else
      {  
		    if(n.habitat[[i]]>100) # se maior que x, então generalista de habitat, se menor então especialistas de habiat. 
		    {
			  resultado.habitat[[i]] <- c("gen.hab")
		    }
		    else
		    {
			  resultado.habitat[[i]] <- c("esp.hab")
		    }
    }
	 }
  
	raridade.hab$habitat = unlist(resultado.habitat)
	 
	 ###Referente ao tamanho populacional 
	 
	 ##Criando uma coluna no data.frame para tamanho populacional 
	 
	 raridade.hab$tam.pop <- rep((NA), times=length(nome.sp))
	 
	 	#Avaliando o tamanho populacional para cada espécie para dados numéricos
	 	
	 	if(class(data$tam.pop)!="numeric")
	 	{
	 	  stop("A coluna 'tam.pop'tem que ser numérica") 
	 	}
      	
	   sp <- list(1:length(nome.sp))
     na.pop <- list(1:length(nome.sp))    
		 dados.tam.pop <- list(1:length(nome.sp))
		 sum.tam.pop <- list(1:length(nome.sp))
		 dens.total <- list(1:length(nome.sp))
	   na.tam.pop <- list(1:length(nome.sp))
  	d.na.tam.pop <- list(1:length(nome.sp))
	   num.tam.pop <- list(1:length(nome.sp))
    resultado.tam.pop <- list(1:length(nome.sp))   
  
			for (i in 1:length(nome.sp))
			{
		  sp[[i]] <- data[data$especie==nome.sp[i],]
		  na.pop[[i]] <- unique(sp[[i]]$tam.pop) #para avaliar se há dados
		  dados.tam.pop[[i]] <- sp[[i]]$tam.pop #dados referente a população da espécie
		  dados.tam.pop[[i]][is.na(dados.tam.pop[[i]])==T]  <- 0
		  sum.tam.pop[[i]] <- sum(dados.tam.pop[[i]]) 
		  dens.total[[i]] <- sum.tam.pop[[i]]/length(dados.tam.pop)
	 
		  na.tam.pop[[i]] <- na.omit(sp[[i]]$tam.pop) 
		  d.na.tam.pop[[i]] <- as.data.frame(na.tam.pop[[i]])
		  num.tam.pop[[i]] <- length(d.na.tam.pop[[i]][,1])  
      
		  if(num.tam.pop[[i]]==0)
		  {
		    resultado.tam.pop[[i]] <- c("DD") 
		  }
      
			
					if(dens.total[[i]]>pop) # se maior que y, então pop grande
					{
					  resultado.tam.pop[[i]]<- c("grande")
					}
					else
					{
					  resultado.tam.pop[[i]] <- c("pequena")
					}
		
			 }

  	raridade.hab$tam.pop = unlist(resultado.tam.pop)
	 	
		 ###Referente a distribuição geográfica 
		
		 ##Criando uma coluna no data.frame para tamanho populacional 
	 
	 	 raridade.hab$dist <- rep((NA), times=length(nome.sp))
	 	
	 	 ##Avaliando a distribuição de cada espécie 
	 	
	 	 if (!require(adehabitatHR))  # Se não tiver pacote "adehabitatHR" instalado e ativo, 
         stop("Necessário o pacote adehabitatHR") #pare a função com essa mensage de erro.
   	
		sp <- list(1:length(nome.sp))
		mcp <- list(1:length(nome.sp))
		cord.new <- list(1:length(nome.sp))
	  na.X <-  list(1:length(nome.sp))
  	d.na.X <-  list(1:length(nome.sp))
  	num.X <-  list(1:length(nome.sp))
	  na.Y <-  list(1:length(nome.sp))
	  d.na.Y <-  list(1:length(nome.sp))
	  num.Y <-  list(1:length(nome.sp))
    resultado.dist <- list(1:length(nome.sp))
	  coord <- list(1:length(nome.sp))
    
  
		for (i in 1:length(nome.sp))
		{
		  sp[[i]] <- data[data$especie==nome.sp[i],]
      #verificando o número de coordenadas do data.frame para cada espécie
      na.X[[i]] <- na.omit(sp[[i]]$X) 
      d.na.X[[i]] <- as.data.frame(na.X[[i]])
      num.X[[i]] <- length(d.na.X[[i]][,1])
		  na.Y[[i]] <- na.omit(sp[[i]]$Y) 
		  d.na.Y[[i]] <- as.data.frame(na.Y[[i]])
		  num.Y[[i]] <- length(d.na.Y[[i]][,1])
      coord[[i]] <- data.frame(na.X[[i]], na.Y[[i]])
      
     
      if(num.X[[i]]<5)
      {
        resultado.dist[[i]]<- c("DD")
      }  
        
      
      else
      {  
		    cord.new[[i]] <- SpatialPoints(coord[[i]][,1:2])  #transformando os dados X e Y em SpatialPoints (necessário para a função calcular MCP)
		    mcp[[i]] <- mcp(cord.new[[i]], percent=100) #área de distribuição
		  }  
      
      if(mcp[[i]]$area>dist)
      {
        resultado.dist[[i]] <- c("ampla")
      }
      else
      {
        resultado.dist[[i]] <- c("restrita")
      }
		}
  
	raridade.hab$dist = unlist(resultado.dist)
      
		###Encaixando nas categorias de Rabinowitz###
    
    ##Analisando cada espécie 
    
		sp <- list(1:length(nome.sp))
	  raridade.hab.Rabin <- list(1:length(nome.sp))
  
    	for (i in 1:length(nome.sp))
    	{
		  if((raridade.hab[i,2])=="DD"|(raridade.hab[i,3])=="DD"|(raridade.hab[i,4])=="DD")
		  {
		    raridade.hab.Rabin[[i]] <- c("DD")
		  }
  
      if(raridade.hab[i,2]=="gen.hab"&raridade.hab[i,3]=="grande"&raridade.hab[i,4]=="ampla")
      {
        raridade.hab.Rabin[[i]] <- c("A")
      }
    	
      if(raridade.hab[i,2]=="esp.hab"&raridade.hab[i,3]=="grande"&raridade.hab[i,4]=="ampla")
      {
        raridade.hab.Rabin[[i]] <- c("B")
      }
      if(raridade.hab[i,2]=="gen.hab"&raridade.hab[i,3]=="pequena"&raridade.hab[i,4]=="ampla")
      {
        raridade.hab.Rabin[[i]]<- c("C")
      }
      
      if(raridade.hab[i,2]=="esp.hab"&raridade.hab[i,3]=="pequena"&raridade.hab[i,4]=="ampla")
      {
        raridade.hab.Rabin[[i]] <- c("D")
      }
      
      if(raridade.hab[i,2]=="gen.hab"&raridade.hab[i,3]=="grande"&raridade.hab[i,4]=="restrita")
      {
        raridade.hab.Rabin[[i]] <- c("E")
      }
      
      if(raridade.hab[i,2]=="esp.hab"&raridade.hab[i,3]=="grande"&raridade.hab[i,4]=="restrita")
      {
        raridade.hab.Rabin[[i]] <- c("F")
      }
      
      if(raridade.hab[i,2]=="gen.hab"&raridade.hab[i,3]=="pequena"&raridade.hab[i,4]=="restrita")
      {
        raridade.hab.Rabin[[i]] <- c("G")
      }
      
      if(raridade.hab[i,2]=="esp.hab"&raridade.hab[i,3]=="pequena"&raridade.hab[i,4]=="restrita")
      {
        raridade.hab.Rabin[[i]] <- c("H")
      }
  }

        raridade.hab$Rabin = unlist(raridade.hab.Rabin)

        #########PENSADO RARIDADE COM  DIETA ############################
        
        ##### Criando um novo data.frame para raridade.dieta 

        raridade.dieta <- data.frame(c(nome.sp))

        ### Referente à dieta
        
        sp <- list(1:length(nome.sp))
        m <- list(1:length(nome.sp))
        av <- list(1:length(nome.sp))
        r <- list(1:length(nome.sp))
        an <- list(1:length(nome.sp))
        pe <- list(1:length(nome.sp))
        inv <- list(1:length(nome.sp))
        total <- list(1:length(nome.sp))
        resultado.dieta <- list(1:length(nome.sp))

        for (i in 1:length(nome.sp))
        {
        sp[[i]] <- data[data$especie==nome.sp[i],]
        sp[[i]]$mam[is.na(sp[[i]]$mam)==T]  <- 0
        sp[[i]]$aves[is.na(sp[[i]]$aves)==T]  <- 0
        sp[[i]]$rept[is.na(sp[[i]]$rept)==T]  <- 0
        sp[[i]]$anf[is.na(sp[[i]]$anf)==T]  <- 0
        sp[[i]]$peixe[is.na(sp[[i]]$peixe)==T]  <- 0
        sp[[i]]$inver[is.na(sp[[i]]$inver)==T]  <- 0
        m[[i]] <- sum(sp[[i]]$mam) 
        av[[i]] <- sum(sp[[i]]$aves) 
        r[[i]] <- sum(sp[[i]]$rept)
        an[[i]] <- sum(sp[[i]]$anf)
        pe[[i]] <- sum(sp[[i]]$peixe)
        inv[[i]] <- sum(sp[[i]]$inver)
        
        
        total[[i]] <- (m[[i]]+av[[i]]+r[[i]]+an[[i]]+pe[[i]]+inv[[i]])
        
            #Precisa pelo menos 10 itens alimentares para poder avaliar
            if((m[[i]]+av[[i]]+r[[i]]+an[[i]]+pe[[i]]+inv[[i]])<10) warning("A espécie [[i]] não possui dados suficiente")
            
            if((m[[i]]+av[[i]]+r[[i]]+an[[i]]+pe[[i]]+inv[[i]])<10)
            {
              resultado.dieta[[i]] <- c("DD") #A espécie não possui dado suficiente pra essa categoria 
            }
            
            else
            {  
              if((m[[i]]|av[[i]]|r[[i]]|an[[i]]|pe[[i]]|inv[[i]]/total[[i]])>diet)
              {
                resultado.dieta[[i]] <- c("esp")
              }
              else
              {
                resultado.dieta[[i]] <- c("gen")
              }
             }
        }

         raridade.dieta$dieta = unlist(resultado.dieta)

        ## As colunas referente à distribuição e população serão iguais ao do data.frame "raridade.hab"
        
        raridade.dieta$tam.pop <- raridade.hab$tam.pop
        raridade.dieta$dist <- raridade.hab$dist

        ##Criar uma nova coluna no data.frame "raridade" para as categorias de raridade

        raridade.dieta$Rabin <- rep((NA), times=length(nome.sp))

        ##Analisando cada espécie 

         sp <- list(1:length(nome.sp))
         raridade.dieta.Rabin <- list(1:length(nome.sp))  

         for (i in 1:length(nome.sp))
        {   
           if((raridade.dieta[i,2])=="DD"|(raridade.dieta[i,3])=="DD"|(raridade.dieta[i,4])=="DD")
            {
             raridade.dieta.Rabin[[i]] <- c("DD")
            }
           if(raridade.dieta[i,2]=="gen"&raridade.dieta[i,3]=="grande"&raridade.dieta[i,4]=="ampla")
            {
             raridade.dieta.Rabin[[i]] <- c("A")
            }
            if(raridade.dieta[i,2]=="esp"&raridade.dieta[i,3]=="grande"&raridade.dieta[i,4]=="ampla")
            {
              raridade.dieta.Rabin[[i]] <- c("B")
            }
            if(raridade.dieta[i,2]=="gen"&raridade.dieta[i,3]=="pequena"&raridade.dieta[i,4]=="ampla")
            {
              raridade.dieta.Rabin[[i]] <- c("C")
            }
            
            if(raridade.dieta[i,2]=="esp"&raridade.dieta[i,3]=="pequena"&raridade.dieta[i,4]=="ampla")
            {
              raridade.dieta.Rabin[[i]] <- c("D")
            }
            
            if(raridade.dieta[i,2]=="gen"&raridade.dieta[i,3]=="grande"&raridade.dieta[i,4]=="restrita")
            {
              raridade.dieta.Rabin[[i]] <- c("E")
            }
            
            if(raridade.dieta[i,2]=="esp"&raridade.dieta[i,3]=="grande"&raridade.dieta[i,4]=="restrita")
            {
              raridade.dieta.Rabin[[i]] <- c("F")
            }
            
            if(raridade.dieta[i,2]=="gen"&raridade.dieta[i,3]=="pequena"&raridade.dieta[i,4]=="restrita")
            {
              raridade.dieta.Rabin[[i]] <- c("G")
            }
            
            if(raridade.dieta[i,2]=="esp"&raridade.dieta[i,3]=="pequena"&raridade.dieta[i,4]=="restrita")
            {
              raridade.dieta.Rabin[[i]] <- c("H")
            }
      }
      
          raridade.dieta$Rabin = unlist(raridade.dieta.Rabin)

          ## Pensando no Output

          RARIDADES <- data.frame(c(nome.sp))
          RARIDADES$Rab.hab <- raridade.hab$Rabin
          RARIDADES$Rab.dieta <- raridade.dieta$Rabin

        return(RARIDADES)	
}

minha_funcao.final.r help.raro.txt