[R] Generating Numbers With Certain Distribution in R

Bernardo Rangel Tura tura at centroin.com.br
Wed Feb 11 10:21:46 CET 2009


On Wed, 2009-02-11 at 04:07 +0000, Ben Bolker wrote:
> Gundala Viswanath <gundalav <at> gmail.com> writes:
> 
> > 
> > Dear all,
> > 
> > Is there a way to generate K numbers of integer (K = 10^6).
> > The maximum value of the integer is 200,000 and minimum is 1.
> > 
> > And the occurrences of this integer follows
> > a lognormal distribution.
> > 
> > - Gundala Viswanath
> > Jakarta - Indonesia
> 
>   Technically speaking, I don't think this is possible
> since lognormal variates range from 0 to infinity
> and are continuous.  However, perhaps something like
> 
> x <- rlnorm(1e6,mulog=1,sdlog=1) ## pick any parameters you like
> y <- round((x-min(x))/diff(range(x)))*199999+1
> 
>   That probably doesn't do exactly what you want,
> but you will probably need to specify your problem more
> precisely (and perhaps give some context) if you want
> a better answer ...
> 
>   Ben Bolker


Ben,

I think your routine need a little fix

x <- rlnorm(1e6,meanlog=1,sdlog=1) ## pick any parameters you like
y <- round((x-min(x)/diff(range(x)))*199999+1)

What you think?

-- 
Bernardo Rangel Tura, M.D,MPH,Ph.D
National Institute of Cardiology
Brazil




More information about the R-help mailing list