# Re: [R] generate random numbers

From: David Scott <d.scott_at_auckland.ac.nz>
Date: Fri, 01 Apr 2011 11:26:33 +1300

On 01/04/11 08:50, Ted Harding wrote:
> On 31-Mar-11 19:23:33, Anna Lee wrote:
>> Hey List,
>> does anyone know how I can generate a vector of random numbers
>> from a given distribution? Something like "rnorm" just for non
>> normal distributions???
>>
>> Thanks a lot!
>> Anna
> SUppose we give your distribution the name "Dist".
>
> The generic approach would start by defining a function for
> the inverse of its cumulative distribution. Call this qDist.
> Then
>
> qDist(runif(1000))
>
> would generate 1000 values from the distribution "Dist".
>
> the cumulative distribution function of the Normal distribution.
> Then
>
> qnorm(runif(1000))
>
> would act just like rnorm(1000), though the sequence of values
> would be different (a different algorithm) -- and also rnorm()
> would be more efficient (being specially written).
>
> Depending on what your desired distribution is, you may find
> that an "rDist" has already been written for it. There are
> many distributions already in R for which the family of
> functions dDist, pDist, qDist and rDist are provided.
>
> the specific distribution you want to sample from!
>
> Ted.
>

I can point to one general implementation which might be helpful, and even the function names are the same.

In the version of DistributionUtils on R-Forge you will find functions pDist and qDist which should give the distribution function and quantile function of any continuous unimodal distribution.

Provisos: there may be problems with distributions with very heavy tails, and generally the routines could be slow.

David Scott

```--
_________________________________________________________________
David Scott	Department of Statistics
The University of Auckland, PB 92019
Auckland 1142,    NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email:	d.scott_at_auckland.ac.nz,  Fax: +64 9 373 7018

Director of Consulting, Department of Statistics

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help