On 10/10/2006 9:53 AM, Peter Dalgaard wrote:
> "sun" <[EMAIL PROTECTED]> 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...
>
Another definition of uniform is to have equal density for all possible
vectors; the Dirichlet distribution with parameters (1,1,1) would give
you that. RSiteSearch finds at least a couple of packages (VGAM,
MCMCpack) that provide simulations from the Dirichlet.
Duncan Murdoch
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.