[R] Error in integrate(int.fn, lower = 0, upper = Inf) : evaluation of function gave a result of wrong length
David Winsemius
dwinsemius at comcast.net
Mon Apr 9 04:33:18 CEST 2012
On Apr 8, 2012, at 1:28 PM, Guaramy wrote:
> Hi, i am writing a function to plot a pdf functions of a Generalized
> normal
> laplace distribution.
> The code is this
> {
> y = x-rho*mu
> cf.fn = function(s){
> cplex = complex(1,0,1)
> temp1 = alpha*beta*exp(-sigma*s^2/2)
> temp2 = (alpha-cplex*s)*(beta+cplex*s)
> out = (temp1/temp2)^rho
> out
> }
> temp.fn = function(s){
> (Mod(cf.fn(s)))*cos(Arg(cf.fn(s))-s*y)
> }
>
> int.fn = function(t){sapply(t,FUN=temp.fn)}
> te =
> integrate(int.fn,lower=0,upper=Inf,rel.tol=1e-10,subdivisions=1000000)
> temp3 = ifelse(te$message == "OK",te$value/pi,NA)
> temp3
> }
> for example if i call the function like this :
> GNL.pdf.fn(x[100],mu,sigma,alpha,beta,rho)
> there is no problem and as expected a number is returned
>
> but if i try to call it with a sequence of number ex: x =
> seq(-4,4,0.1)
?Vectorize
>
> this error keeps show in up
>
> Error in integrate(int.fn, lower = 0, upper = Inf) :
> evaluation of function gave a result of wrong length
>
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list