[R] Applying a function to a vector

Florent Bresson f_bresson at yahoo.fr
Mon Oct 31 17:10:33 CET 2005


It works really faster with mapply. I just had to
change my fonction from pbeta2(z,p) with p=c(p1,p2) to
pbeta2(z,p1,p2). Thanks for the tip.

--- Thomas Lumley <tlumley at u.washington.edu> a écrit :

> On Mon, 31 Oct 2005, Florent Bresson wrote:
> 
> > I just have a try with sapply. The problem is that
> my
> > function pbeta2 has two parameters z and p (wich
> is a
> > vector of two parameters). If I use sapply , R
> returns
> > a message incicating that parameter p is missing.
> It
> > is a problem since both z and p are varying along
> my
> > data.frame.
> 
> You would need mapply().  It won't help, though. 
> Most of the time is 
> presumably being spent in all the calls to
> integrate, so mapply() or 
> sapply() won't be much faster than a loop.
> 
> 
> According to Google, the VGAM R package 
> http://www.stat.auckland.ac.nz/~yee/
> claims to have the beta distributions of the second
> kind.
> 
> 
>  	-thomas
> 
> 
> >> Florent
> >> have a look at:
> >> help(sapply)
> >
> >
> >> On Mon, 31 Oct 2005, Florent Bresson wrote:
> >
> >>> beta distribution of the second kind (the
> existing
> >>> beta distribution of th stats package is the
> beta
> >>> distribution of the first kind). It works
> perfectly
> >>> for a single value, but I want to apply it to a
> > vector
> >>> of 22 000 values. I can use a loop for the
> > calculation
> >>> of each value but it runs very very slowly.
> >>> So, what can I change ?
> >>>
> >>> Here's the function :
> >>> p <-  c(1,1)
> >>> y <-  1
> >>> z <-  1
> >>> truc  <-  function(y)
> > {y^(p[1]-1)/(1+y)^(p[1]+p[2])}
> >>> pbeta2  <-  function(z,p)
> >>> 1/beta(p[1],p[2])*integrate(truc,0,z)$value
> >>>
> >>> machin <- pbeta2(vector,p) just return a single
> > value
> >>>
> >>> Thanks for your help
> >>>
> >>> ______________________________________________
> >>> R-help at stat.math.ethz.ch mailing list
> >>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>> PLEASE do read the posting guide!
> > http://www.R-project.org/posting-guide.html
> >>>
> >>>
> >
> >> Paulo Justiniano Ribeiro Jr
> >> LEG (Laboratório de Estatística e Geoinformação)
> >> Departamento de Estatística
> >> Universidade Federal do Paraná
> >> Caixa Postal 19.081
> >> CEP 81.531-990
> >> Curitiba, PR  -  Brasil
> >> Tel: (+55) 41 3361 3573
> >> Fax: (+55) 41 3361 3141
> >> e-mail: paulojus at est.ufpr.br
> >> http://www.est.ufpr.br/~paulojus
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> >
> 
> Thomas Lumley			Assoc. Professor, Biostatistics
> tlumley at u.washington.edu	University of Washington,
Seattle




More information about the R-help mailing list