[R] make sample() faster

Rainer M. Krug Rainer at krugs.de
Thu Jun 14 14:02:15 CEST 2007


Thanks for the info - so the solution would (likely) be to draw several 
samples and use these whenever I need a new one.

tHANKS, i'LL TRY IT OUT,

rAINER

P.S: somebody said once that the caps-lock key is the most useless key 
on the keyboard and he is right...


Prof Brian Ripley wrote:
> I think the problem is not sample (which is written in C), but that you 
> are calling it with size=1.  Taking one sample with probabilities from a 
> large discrete distribution is necessarily slow, but you can take a large 
> sample for little more cost.
> 
> On Thu, 14 Jun 2007, Rainer M. Krug wrote:
> 
>> Hi
>>
>> I have a simulation which is relatively slow. I used Rprofile() and
>> identified the calls to sample() as the culprit is sample():
>>
>>> summaryRprof("Documents/PostDoc/Aloe_Pillansii/R/create.out")
>> $by.self
>>                   self.time self.pct total.time total.pct
>> "sample"               1.30     44.2       1.52      51.7
>> "ifelse"               0.46     15.6       2.44      83.0
>> .
>> .
>> .
>>
>> I am using sample() as follow:
>> result <- sample(
>>                  x=d.growth.seedling$growth,
>>                  size=1,
>>                  prob=d.growth.seedling$p,
>>                  replace
>>                  )
>>
>> d.growth.seedling$p and d.growth.seedling$growth have a length of 1024
>> and are calculated initially by using density().
>>
>> My question: is there any way to make this faster, i.e. replace sample()
>> as I use it with another faster algorithm (if necessary implemented in C)?
>>
>> Thanks in advance,
>>
>> Rainer
>>
>>
> 


-- 
NEW EMAIL ADDRESS AND ADDRESS:

Rainer.Krug at uct.ac.za

RKrug at sun.ac.za WILL BE DISCONTINUED END OF MARCH

Rainer M. Krug, Dipl. Phys. (Germany), MSc Conservation
Biology (UCT)

Leslie Hill Institute for Plant Conservation
University of Cape Town
Rondebosch 7701
South Africa

Fax:		+27 - (0)86 516 2782
Fax:		+27 - (0)21 650 2440 (w)
Cell:		+27 - (0)83 9479 042

Skype:		RMkrug

email:	Rainer.Krug at uct.ac.za
       	Rainer at krugs.de



More information about the R-help mailing list