我正在尝试创建一个函数,它将根据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)
}发布于 2016-02-07 06:09:27
"my“R遇到的唯一错误是你的"q”赋值。在评估逻辑标志时,您应该使用q==2而不是q=2。这意味着您将数字2赋给变量q。因此,请使用"q==...“修改您的第28行和第38行。干杯!
https://stackoverflow.com/questions/35246972
复制相似问题