What uniform distribution do you want for the columns? The average value of X_k given \sum X_i = 1 must be 1/n. If you start with X_i ~ U(0,1), the result must be skewed.
If you generate X_i uniformly distributed on (0, 2/n), the conditional distribution given the sum is 1 will be less skewed. U <- matrix(runif(1000*100)/50,nrow=1000) s <- apply(U,1,sum) V <- U/s qqplot(U[,1],V[,1]) albyn On Wed, Nov 07, 2012 at 05:02:10AM -0800, Bärbel wrote: > Hi, > I am looking for a way to generate a matrix of random numbers in a way that > each row of the matrix would sum to 1 and that the numbers in the columns of > the matrix would have a uniform distribution. So far I have found several > ways to create random numbers that would sum to 1, but then the distribution > of the individual elements is more or less skewed - there are much more > small numbers than larger ones. > Any help and suggestions? > - Bärbel > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/how-to-generate-a-set-of-random-numbers-that-sum-to-1-with-uniform-distribution-of-elements-tp4648695.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org 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. -- Albyn Jones Reed College jo...@reed.edu ______________________________________________ R-help@r-project.org 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.