Emmanuel

One option which appears to work:

emmanuel <- c(1,1,1,2,2,3,3,3)
#emmanuel <- c(1,1,2,3,4,5,6,6,6,6,6,6,6,6,7,8)
runs <- rle(emmanuel)[[1]]
shuffle <- sample(1:length(runs))
newEmm <- rep(emmanuel[cumsum(runs)[shuffle]], runs[shuffle])
startPos <- sample(1:length(emmanuel), 1)
if (startPos==1) newEmm else
newEmm[c(startPos:length(newEmm),1:(startPos-1))]

Peter Alspach

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Emmanuel Levy
> Sent: Friday, 20 April 2007 1:03 p.m.
> To: [email protected]
> Subject: [R] A particular shuffling on a vector
> 
> Hello,
> 
> I was wondering if anyone can think of a straightforward way (without
> loops) to do the following shuffling:
> 
> Let's imagine a vector:
> c(1,1,1,2,2,3,3,3)
> 
> I would like to derive shuffled vectors __where the same 
> digits are never separated__, although they can be at both 
> ends (periodicity).
> 
> So the following shuffled vectors are possible:
> 
> c(2,2,1,1,1,3,3,3)
> c(2,1,1,1,3,3,3,2)
> c(3,3,3,1,1,1,2,2)
> c(3,1,1,1,2,2,3,3)
> etc ...
> 
> I should mention that there can be any number of different 
> numbers, and any number of repetition of each number.
> 
> So the vectors I have to deal with could look like
> c(1,1,2,3,4,5,6,6,6,6,6,6,6,6,7,8) for example
> 
> Since I have to derive many shuffled versions for each 
> vector, I am looking for an efficient way of doing it. Can 
> you think of a way without nested loops?
> 
> Many thanks for your help,
> 
> Best,
> 
> Emmanuel
> 
> ______________________________________________
> [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.
> 

______________________________________________________

The contents of this e-mail are privileged and/or confidenti...{{dropped}}

______________________________________________
[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.

Reply via email to