意外的总和值

时间:2015-02-12 07:07:07

标签: r

这是我在R中的程序:

mletheta<-function(x)
{
n<-length(x)
temp<-x<=0
if(n==0||sum(temp)>0)
{
stop("ERROR:x must be a vector of positive real values.\n")
}
thetahat<--1*n/sum(log(1-exp(-1*x**2)))
return(thetahat)
}
mletheta(-3)

我的问题是我无法理解如果x&lt; = 0,那么sum(temp)&gt; 0。当x = -5:-4时,sum(temp)应为-9 <0。我不懂逻辑吗?

1 个答案:

答案 0 :(得分:2)

让我们分解函数的第一部分:

x <- -5:-4
n <- length(x)
n
# [1] 2
temp <- x<=0
temp
# [1] TRUE TRUE
sum(temp)
# [1] 2

这符合if语句if(n==0||sum(temp)>0),如果向量的长度为NULL(n==0),则显示错误消息,在这种情况下不是真的,temp的总和大于0(sum(temp)>0),则为>或。在这里,sum(temp)给出了2。