From: Daniel Nordlund <res90sx5_at_verizon.net>

Date: Wed 05 Oct 2005 - 02:02:58 EST

for(i in Len:2) {

UL <- tot - sum(v) - i + 1

v[i]<-sample(1:UL,1)

}

v[1] <- tot - sum(v)

v

}

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Oct 04 19:05:12 2005

Date: Wed 05 Oct 2005 - 02:02:58 EST

> -----Original Message-----

*> From: r-help-bounces@stat.math.ethz.ch [mailto:r-help-bounces@stat.math.ethz.ch]
**> On Behalf Of ecatchpole
**> Sent: Monday, October 03, 2005 11:57 PM
**> To: Eric Pante
**> Cc: r-help@stat.math.ethz.ch
**> Subject: Re: [R] sampling vectors
**>
**> Eric,
**>
**> If you want samples of size 3 from 0:50, with sum==50, this seems to do
**> the job (with apologies to those who really know how to program in R):
**>
**> tot <- 50
**> ii <- 0
**> aa <- list()
**> for(i in 0:tot){
**> for(j in 0:(tot-i)){
**> k <- tot-i-j
**> ii <- ii+1
**> aa[[ii]] <- list(i=i,j=j,k=k)
**> }
**> }
**>
**> aa[sample(ii, 4)] # for a sample of 4.
**>
**> If you want a sample of size n from x[1],...x[N], such that the sample
**> sum is T, then that is much trickier!
**>
**> Ted.
**>
**> On 04/10/05 07:31, Eric Pante wrote,:
**> > Hello Listers,
**> >
**> > I am trying to sample a vector to create a new one of sample length,
**> > witha sum equal to the sum of the initial vector:
**> >
**> > initial = 10, 30, 10 (sum=50)
**> > sample example = 5, 35, 10 (sum=50) or 25, 15, 10 (sum=50), etc ...
**> >
**> > My problem is to control the sum, so it stays constant.
**> > Any suggestions would be very helpful !
**> >
**> > Thank you in advance,
**> > Eric
**> >
*

Eric,

Here is another solution, which allows vectors of different lengths and sums.

vectorSample <- function(vec) {

tot<-sum(vec) Len<-length(vec) v < -rep(0,Len)

for(i in Len:2) {

UL <- tot - sum(v) - i + 1

v[i]<-sample(1:UL,1)

}

v[1] <- tot - sum(v)

v

}

vectorSample( c(10,30,10) )

Hope this helps,

Dan Nordlund

Bothell, WA

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Oct 04 19:05:12 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:40:35 EST
*