[R] generate random numbers that sum up to 1

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Oct 10 15:53:03 CEST 2006


"sun" <as at hut.at> writes:

> I am trying to generate a vector of random numbers with the constraint that 
> they have to sum up to one with uniform distribution.
> 
> eg. {0.1,0.7,0.2 }
> 
> any function to do this? Thanks.

Depending on what you mean by "uniform", this may be a solution

> x<-runif(3)
> x/sum(x)
[1] 0.1130642 0.4098608 0.4770750

What you can't have is the individual components uniform and
identically distributed because the sum of the means would be 1.5 and
equal to the mean of the sum which is 1...

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-help mailing list