[R] Integrate inside function

Mauro Rossi mauro.rossi at irpi.cnr.it
Thu Mar 15 11:08:26 CET 2012


Dear R users,
     first I take this opportunity to greet all the R community for your 
continuous efforts.
I wrote a function to calculate the pdf and cdf of a custom distribution 
(mixed gamma model).
The function is the following:

pmixedgamma3 <- function(y, shape1, rate1, shape2, rate2, prev)
	{
	density.function<-function(x)
		{
		shape1=shape1
		rate1=rate1
		shape2=shape2
		rate2=rate2
		prev=prev
		fun<-prev*((rate1^shape1)/gamma(shape1)*(x^(shape1-1))*exp(-rate1*x)) 
+ (1-prev)*((rate2^shape2)/gamma(shape2)*(x^(shape2-1))*exp(-rate2*x))
		return(fun)
		}
	den<-density.function(y)
	p.mixedgamma<-integrate(f=density.function,lower=0,upper=y)
	return(list(density=den,cumdensity=p.mixedgamma$value))
	}

Why doesn't this calculate cumdensity (p.mixedgamma) in case x is a vector?

For instance try:
pmixedgamma3(c(10,20),shape1=10,rate1=1,shape2=10,rate2=1,prev=0.5)

As you can see cumdensity is calculated just for the first x value.

Thanks in advance
Best
Mauro

-- 
Mauro Rossi
Istituto di Ricerca per la Protezione Idrogeologica
Consiglio Nazionale delle Ricerche
Via della Madonna Alta, 126
06128 Perugia
Italia
Tel. +39 075 5014421
Fax +39 075 5014420

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Parte allegato al messaggio
URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20120315/3fd18974/attachment.pl>


More information about the R-help mailing list