R Can';我似乎无法修复函数中的错误

R Can';我似乎无法修复函数中的错误,r,function,R,Function,我试图创建一个函数,根据q的值计算特定的多样性指数。然而,我在运行它时收到了许多错误消息,我不知道如何修复它。有人能帮忙吗?谢谢 q.div1 <- function(data, q, que) { if(abs(q-1) < 0.000001) { # Get rid of zero values from vector no.zeros <- data[data > 0] # Calculate proportions p

我试图创建一个函数,根据q的值计算特定的多样性指数。然而,我在运行它时收到了许多错误消息,我不知道如何修复它。有人能帮忙吗?谢谢

q.div1 <- function(data, q, que)
{
  if(abs(q-1) < 0.000001)

  {
    # Get rid of zero values from vector
    no.zeros <- data[data > 0]

    # Calculate proportions
    p <- no.zeros/sum(no.zeros)

    # Calculate D1
    D1 <- exp(-sum(p * log(p)))
 }

  else if (is.infinite(q))
  {
    # Get rid of zero values from vector
    no.zeros <- data[data > 0]

    # Calculate proportions
    p <- no.zeros/sum(no.zeros)

    # Calculate D.Inf
    D.Inf <- 1/max(p) 
  }

  else if (q = 2)
  {
    # Get rid of zero values from vector
    no.zeros <- data[data > 0]

    # Calculate proportions
    p <- (no.zeros/sum(no.zeros))^q
    D2 <- sum(p)
  }

  else if (q = 0)
  { 
    # Get rid of zero values from vector
    no.zero <- data[data > 0]

    # Calculate proportions
    p <- no.zero/sum(no.zero)

    # Raise to power of q
    prop.q <- (p)^q
    D0 <- sum(prop.q)
  }

  else
    # Get rid of zero values from vector
    no.zero <- data[data > 0]

  # Calculate proportions
  prop <- no.zero/sum(no.zero)

  # Raise to power of q
  prop.q <- (prop)^que
  sum.pq <- sum(prop.que)

  # Raise to power 1/(1-q)
  pq <- sum.pq^(1/1-que)
 }
q.div1遇到的唯一错误是你的“q”作业。
评估逻辑标志时,应使用q==2而不是q=2。后者意味着您正在为变量q分配一个数字2。
因此,将第28行和第38行修改为“q=…”。
干杯

我遇到的唯一错误是你的“q”作业。 评估逻辑标志时,应使用q==2而不是q=2。后者意味着您正在为变量q分配一个数字2。 因此,将第28行和第38行修改为“q=…”。
干杯

请发布您的错误消息以及您为解决这些错误而采取的步骤。请发布您的错误消息以及您为解决这些错误而采取的步骤。