função match.arg()

classic Clássica list Lista threaded Em Árvore
3 mensagens Opções
Responder | Em Árvore
Abra essa mensagem na visão em árvore
|

função match.arg()

Marianne Azevedo Silva
Oi pessoal!

Consegui fazer a função diversidade (exercício 9.3) e tentei usar a função match.arg(), mas não faço a mínima ideia de onde colocá-la na função...tentei algumas opções e não deu certo...

sei que isso não é obrigatório pelo notaR, mas fiquei curiosa de como ela poderia ser usada. Alguém conseguiu?

Segue o meu código:
##Exercicio 9.3##

#função para calcular indice de shannon
shannon <- function(x)
{
  #remover NAs da amostra
  x <- na.omit(x)
  #remover observações com zero
  x <- x[x!=0]
  #calcular indice de shannon
  h <- -sum((x/sum(x))*log(x/sum(x)))
  return(h)
}

#função para calcular indice de simpson
simpson <-function(y)
{
  #remover NAs da amostra
  y <- na.omit(y)
  #calcular indice de simpson
  d <- sum((y/sum(y))^2)
  return(d)
}

diversidade <- function(dados, indice=c("shannon","simpson"))
{
  if(is.matrix(dados)!= TRUE)
  {
    stop("O objeto de entrada deve ser uma matriz com a abundância das espécies nas linhas e amostras nas colunas")
  }else
  {
    #escolher indice de diversidade
    if(indice!="shannon" & indice!="simpson")
    {
      stop("O índice de diversidade deve ser de Shannon ou Simpson")
    }
    if(indice=="shannon")
    {
      results <- matrix(NA,ncol=ncol(dados),nrow=1)
      for(i in 1:ncol(dados))
      {
        results[,i] <- shannon(dados[,i])
      }
    }
    if(indice=="simpson")
    {
      results <- matrix(NA,ncol=ncol(dados),nrow=1)
      for (i in 1:ncol(dados))
      {
        results[,i]<- simpson(dados[,i])
      }
    }
  }
return(results)
}
Responder | Em Árvore
Abra essa mensagem na visão em árvore
|

Re: função match.arg()

Alan Eduardo de Barros
Oi Marianne,

  De uma olhada no topico "Não entendo o erro no exercício 109.3" do Dyllan.
  Dentro do topico ele posta o script e aparece onde da para encaixar a funcao match.arg()
Responder | Em Árvore
Abra essa mensagem na visão em árvore
|

Re: função match.arg()

Marianne Azevedo Silva
uia! Legal!

Obrigada Alan