2014-10-02 33 views
0

我遇到当我试图使用集成功能R.非限定函数值集成[R

non-finite function value 

我不断收到此错误消息时,我调用了一些数据集成功能的问题。我试图限制目标函数在(-1,1) 的范围内,并且它在有限区间(-1,1)上积分。我找不到这个错误的任何解释。有没有人遇到过这种情况?如下千恩万谢

函数引用链接

http://stat.ethz.ch/R-manual/R-devel/library/stats/html/integrate.html

以下是代码

f<-function(p,c,n,k,a,b){ 
Ans=p^(a-1)*(1-p)^(b-1)*(c*p)^(k)*(1-c*p)^(n-k) 
if (is.finite(Ans)[1]){ 
return(Ans) 
} 
else if (abs(Ans)>1) { 
return(1) 
} 
else { 
return(0) 
} 
} 



intFun<-function(c,n,k,a,b){ 
return(integrate(f,lower=0,upper=1,c=c,n=n,k=k,a=a,b=b,abs.tol =100)$value) 
} 
+0

什么是C的值,N,K,A,B? – agstudy 2014-10-02 11:27:03

回答

1

在猜测,你的问题是,你已经丢失或NaN输入值,这被认为是非有限。这意味着,不仅可以通过无限值来产生这个错误:

integrate(function(x) 1/x, lower = -1, upper = 1) 
## Error in integrate(function(x) 1/x, lower = -1, upper = 1) : 
## non-finite function value 

但缺少辈:

integrate(function(x) ifelse(x == 0, NA, x), lower = -1, upper = 1) 
## Error in integrate(function(x) ifelse(x == 0, NA, x), lower = -1, upper = 1) : 
## non-finite function value