On 12-Aug-09 22:05:24, Emmanuel Levy wrote: > Dear All, > I cannot find a solution to the following problem although I imagine > that it is a classic, hence my email. > > I have a vector V of X values comprised between 1 and N. > > I would like to get random samples of X values also comprised between > 1 and N, but the important point is: > * I would like to keep the same distribution of distances between the X > values * > > For example let's say N=10 and I have V = c(3,4,5,6) > then the random values could be 1,2,3,4 or 2,3,4,5 or 3,4,5,6, or > 4,5,6,7 etc.. > so that the distribution of distances (3 <-> 4, 3 <->5, 3 <-> 6, 4 <-> > 5, 4 <-> 6 etc ...) is kept constant. > > I couldn't find a package that help me with this, but it looks like it > should be a classic problem so there should be something! > > Many thanks in advance for any help or hint you could provide, > All the best, > Emmanuel
If I've understood you right, you are basically putting a sequence with given spacings in a random position amongst the available positions. In your example, you would randomly choose between 1,2,3,4/2,3,4,5/3,4,5,6/4,5,6,7/5,6,7,8/6,7,8,9/7,8,9,10/ Hence a result Y could be: A <- min(V) L <- max(V) - A + 1 M <- (0:(N-L)) Y <- 1 + (V-A) + sample(M,1) I think this does it! -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 12-Aug-09 Time: 23:49:22 ------------------------------ XFMail ------------------------------ ______________________________________________ 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.