Dear David and Micheal,
thanks for your suggestion. Vectorize does what I need.
David you suggest me that I didn't built the function in a manner that
would vectorize. Could you please explain me what's wrong?
Thanks,
Mauro
>
> On Mar 15, 2012, at 6:08 AM, Mauro Rossi wrote:
>
>> 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?
>
> You did not build the function in a manner that would vectorize, but
> perhaps the convenience vuntion would help here:
>
> Vpmixedgamma3 <- Vectorize(pmixedgamma3)
>
>
>>
>> For instance try:
>> pmixedgamma3(c(10,20),shape1=10,rate1=1,shape2=10,rate2=1,prev=0.5)
>
>
> > Vpmixedgamma3(c(10,20),shape1=10,rate1=1,shape2=10,rate2=1,prev=0.5)
> [,1] [,2]
> density 0.12511 0.002908153
> cumdensity 0.5420703 0.9950046
>
>>
>> As you can see cumdensity is calculated just for the first x value.
>>
>>
--
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
SkypeID: mauro.rossi76
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.