首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >似乎无法修复我的函数中的错误

似乎无法修复我的函数中的错误
EN

Stack Overflow用户
提问于 2016-02-07 05:59:25
回答 1查看 32关注 0票数 0

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

代码语言:javascript
复制
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)
 }
EN

回答 1

Stack Overflow用户

发布于 2016-02-07 06:09:27

"my“R遇到的唯一错误是你的"q”赋值。在评估逻辑标志时,您应该使用q==2而不是q=2。这意味着您将数字2赋给变量q。因此,请使用"q==...“修改您的第28行和第38行。干杯!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35246972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档