[R] Permutations

Gabor Grothendieck ggrothendieck at myway.com
Thu Jul 15 01:14:49 CEST 2004


Just in case my last post is wrong in assuming that 
ordered repesentatives of the 3!^4 intragroup permutations
are adequate, the following minor variation of the routine 
in my last post will provide an unordered representative.
Its actually easy to do since sample(12,12), which we
already calculated, is that representative so we merely
store it.  

ordered.perm2 <- function(N) {
   samp <- function() c(apply(matrix(z[i,] <<- sample(12,12),3),2,sort))
   s <- vector(length = N, mode = "character")
   z <- matrix(nr = N, nc = 12)
   for(i in 1:N) 
      while( (s[i]<-paste(samp(),collapse=" ")) %in% s[seq(len=i-1)] ) {}
   z
}

# test
set.seed(1)
ordered.perm(3)  



Gabor Grothendieck <ggrothendieck <at> myway.com> writes:

: 
: Based on your description below and our off-list
: discussion I gather than the problem is equivalent
: to sampling ordered permutations in the sense
: defined by Erich (i.e.  permutations which are
: increasing within blocks) WITHOUT replacement.
: 
: Actually one of your valid permutations in your
: example is not ordered but it seems arbitrary
: which representative of the 3!^4 intrablock
: permutations is used which is why I believe this
: solves your problem. 
: 
: The following code (not extensively tested) does this:
: 
: ordered.perm <- function(N) {
:    samp <- function() c(apply(matrix(sample(12,12),3),2,sort))
:    z <- vector(length=N, mode="character")
:    for(i in 1:N) 
:       while( (z[i]<-paste(samp(),collapse=" ")) %in% z[seq(len=i-1)] ) {}
:    matrix(as.numeric(unlist(strsplit(z, split = " "))), nc = 12, byrow = 
TRUE)
: }
: ordered.perm(3)  # test run
: 
: In the above, samp(), which is from my previous
: response, gets one sample WITH replacement. It generates
: an unrestricted permutation of 12 and then projects that
: onto its associated ordered permutation of 12.  Note that
: samp does not use rejection.  That comes later which is
: why there are relatively few rejections.
: 
: Each iteration of the for loop gets one sample without
: replacement storing the unrejected sammples as
: character strings in vector z.  Each iteration of this
: for loop uses a while to call samp() repeatedly until it 
: finds a sample that has not previously been generated
: (i.e. rejecting the others). The line beginning
: with matrix converts the strings to numbers.
: 
: Jordi Altirriba GutiÃ©rrez <altirriba <at> hotmail.com> writes:
: 
: : 
: : Dear Adaikalavan,
: :   Now I've send a similar e-mail to Robin and Rolf, therefore I can deduce 
: : that my first e-mail was not enough clear (sorry).
: :   Therefore, I'm going to try it again with an explanation of why I don't 
: : want those permutations:
: : 
: : IÂ’ve 12 elements in blocks of 3 elements and I want only to make 
: : permutations inter-blocks (no intra-blocks) (sorry if the terminology is 
not 
: : accurate), something similar to:
: : 
: : 1 2 3 | 4 5 6 | 7 8 9 | 10 11 12   YES-------1st permutation
: : 
: : 1 3 2 | 4 5 6 | 7 8 9 | 10 11 12   NO ----because it's an "intra-block" 
: : permutation of permutation 1
: :    -  -
: : 3 2 1 | 4 5 6 | 7 8 9 | 10 11 12   NO ----because it's an "intra-block" 
: : permutation of permutation 1
: : -  -  -
: : 1 2 4 | 3 5 6 | 7 8 9 | 10 11 12   YES-----2nd permutation
: : 
: : 4 5 6 | 1 2 3 | 7 8 9 | 10 11 12   YES-----3rd permutation
: : 
: : 4 5 6 | 2 1 3 | 7 8 9 | 10 11 12   NO ----because it's an "intra-block" 
: : permutation of permutation 3
: :            -  -
: : 10 1 7 | 4 8 7 | 5 6 12 | 3 2 9    YES---Xth permutation
: : 
: : 1 10 7 | 4 8 7 | 5 6 12 | 3 2 9    NO ----because it's an 
: : "intra-block"permutation of permutation X
: : -   -
: : 
: : So, what is a "not correct" permutation is an "intra-block" permutation of 
a 
: : permutation created before.
: : 
: : Again, thanks for your time and suggestions,
: : 
: : Jordi Altirriba
: : PhD student
: : Hospital Clinic - Barcelona - Spain
: : 
: : P.S. Probably (it's the way of how I'm testing the algorithms now with 
: : Excel) [sorry if it's stupid], could be interesting something similar to:
: : 
: : 1 2 3 | 4 5 6 | 7 8 9 | 10 11 12 ---> 1*2*3=6 | 4*5*6=120 | 7*8*9=504 | 
: : 10*11*12=1320
: : 
: : 1 3 2 | 4 5 6 | 7 8 9 | 10 11 12 ---> 1*3*2=6 | 4*5*6=120 | 7*8*9=504 | 
: : 10*11*12=1320
: : 
: : 4 5 6 | 1 2 3 | 7 8 9 | 10 11 12 ---> 4*5*6=120 | 1*2*3=6 | 7*8*9=504 | 
: : 10*11*12=1320
: : 
: : 
: : Results:
: : permutation1: 6 | 120 | 504 | 1320
: : permutation2: 6 | 120 | 504 | 1320
: : permutation3: 120 | 6 | 504 | 1320
: : 
: : Order the permutations according first to the first parameter, second to 
the 
: : second...and to the fourth.
: : 
: : In this case it's the same:
: : permutation1: 6 | 120 | 504 | 1320
: : permutation2: 6 | 120 | 504 | 1320
: : permutation3: 120 | 6 | 504 | 1320
: : 
: : Therefore, if the first, second, third and fourth parameter of a 
: : permutations have the same value that the next permutation it's because 
: : there is an "intra-block" permutation. So, permutation 2 is an "intra-
block" 
: : permutation of permutation 1.
: : 
: : P.S. Sorry for having forgotten the title of the last e-mail
: : 
: : 
: : >From: Adaikalavan Ramasamy <ramasamy <at> cancer.org.uk>
: : >To: Jordi Altirriba GutiÃ©rrez <altirriba <at> hotmail.com>
: : >CC: rksh <at> soc.soton.ac.uk, R-help <r-help <at> stat.math.ethz.ch>
: : >Subject: Re: [R]  Permutations
: : >Date: Wed, 14 Jul 2004 18:00:49 +0100
: : >
: : >I think the issue here is in the two keywords - permutations or sample.
: : >
: : >AFAIK, permutations should return all admissible (by some rule)
: : >combinations. If this is a large number, as some have pointed out, then
: : >one essentially takes a _sample_ of all admissible combinations. Since
: : >you earlier mentioned that you only want 5-10 outputs, perhaps the
: : >correct term is sampling with restrictions.
: : >
: : >There main problem with Robin's method in that all elements within a row
: : >are mutually exclusive to the other. e.g. only one of either 1, 4, 7, 10
: : >can appear in block 1. Furthermore they can only appear in the first
: : >slot of the first block (so no intra-block randomness). This limits the
: : >number of possible outputs.
: : >
: : >Can you clearly define the rules (with examples) for an admissible
: : >combination ? They seem to have a different meaning every time I read
: : >the mail. Maybe I am just confused.
: : >
: : >
: : >On Wed, 2004-07-14 at 17:16, Jordi Altirriba GutiÃƒÂ©rrez wrote:
: : > >   Dear R users,
: : > >   First of all, thanks to Rolf, Brad, Robin, Erich, Fernando and 
: : >Adaikalavan
: : > > for your time and suggestions.
: : > >   Ive been testing some algorithms (sorry for the delay, Im very slow, 
: : >and
: : > > Im a completely beginner in Rs world).
: : > >   First, the Robin algorithm.
: : > >   I think that there is a problem because Ive done 200 permutations and
: : > > Ive found that these permutations are the same:
: : > > 52 and 91, 99 and 110, 121 and 122, 51 and 141, 130 and 134.
: : > >   Thanks again,
: : > >
: : > > Jordi Altirriba
: : > > Hospital Clinic  Barcelona - Spain
: : > >
: : > > >x <- c(1,2,3,4,5,6,7,8,9,10,11,12)
: : > > >dim(x) <- c(3,4) a<-matrix(1,200,12)
: : > > >for (i in 1:200)
: : > > + {
: : > > +  jj <- t(apply(x,1,sample))
: : > > + a[i,]<-as.vector(jj)
: : > > + }
: : > > >a
: : > >        [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
: : > >   [1,]    7    2    3    1   11    6    4    8    9    10     5    12
: : > >   [2,]    1    2    9    7   11    6    4    8   12    10     5     3
: : > >   [3,]    7    2    9    1   11    3    4    5    6    10     8    12
: : > >   [4,]   10    8    6    4    5   12    7    2    9     1    11     3
: : > >   [5,]   10    2   12    1   11    9    7    8    6     4     5     3
: : > >   [6,]    7    8    6    1    5    9    4   11   12    10     2     3
: : > >   [7,]    1    5   12    7    2    6    4    8    9    10    11     3
: : > >   [8,]    1    5    9   10    8    6    4    2    3     7    11    12
: : > >   [9,]    1   11    6    7    2   12    4    5    9    10     8     3
: : > > [10,]    4    5   12   10   11    9    1    8    6     7     2     3
: : > > [11,]    1   11    9    7    5    6    4    8   12    10     2     3
: : > > [12,]    1    8    3    4    2   12   10    5    9     7    11     6
: : > > [13,]    1    2    3    7   11    6   10    5   12     4     8     9
: : > > [14,]    4    8    3   10    5   12    7    2    9     1    11     6
: : > > [15,]   10    2    3    4    8    6    7   11    9     1     5    12
: : > > [16,]    4    8    9   10    2   12    7    5    6     1    11     3
: : > > [17,]    1    2    6   10    5    3    7    8   12     4    11     9
: : > > [18,]   10    2    9    4   11   12    1    5    6     7     8     3
: : > > [19,]    4    8    6    7   11   12    1    2    9    10     5     3
: : > > [20,]    1    8   12    7    2    3   10   11    6     4     5     9
: : > > [21,]   10    2   12    1    5    9    7   11    6     4     8     3
: : > > [22,]    4   11   12    1    2    3   10    8    6     7     5     9
: : > > [23,]    1   11    3    7    2    6   10    5    9     4     8    12
: : > > [24,]    7    2    9   10    5   12    1   11    3     4     8     6
: : > > [25,]    7    8    9    1    2    6    4    5    3    10    11    12
: : > > [26,]    4    5   12   10    2    3    7   11    6     1     8     9
: : > > [27,]    4    5    9    1   11    3    7    8   12    10     2     6
: : > > [28,]    1    5    6    4   11    3    7    8    9    10     2    12
: : > > [29,]    4    5    6    1   11    9   10    2   12     7     8     3
: : > > [30,]    4   11    3    7    8   12   10    5    6     1     2     9
: : > > [31,]   10    2    3    1   11    6    7    8    9     4     5    12
: : > > [32,]   10    2    3    7    8    9    1   11    6     4     5    12
: : > > [33,]    7   11    6    1    8    9    4    5   12    10     2     3
: : > > [34,]    7    5   12    1    8    6    4   11    3    10     2     9
: : > > [35,]    1    2    3    4    8    6    7    5    9    10    11    12
: : > > [36,]    7    8    3    1   11    9   10    2   12     4     5     6
: : > > [37,]   10    2    6    1   11   12    7    5    3     4     8     9
: : > > [38,]    1    5    9    4   11   12    7    8    3    10     2     6
: : > > [39,]    1    2   12    7    5    9   10    8    3     4    11     6
: : > > [40,]    1    8    3   10    2   12    7   11    6     4     5     9
: : > > [41,]    1    2    9    4    8    3   10   11   12     7     5     6
: : > > [42,]    4    5    6    1    2    9   10    8    3     7    11    12
: : > > [43,]    1    2    6    7   11   12   10    5    9     4     8     3
: : > > [44,]    1    2    9   10   11   12    4    8    6     7     5     3
: : > > [45,]   10    5    9    7   11    6    4    2    3     1     8    12
: : > > [46,]    1    2    3    4   11    6    7    5    9    10     8    12
: : > > [47,]    4    2    6    1    8    3   10    5   12     7    11     9
: : > > [48,]    4    8    9    7    2    3    1    5   12    10    11     6
: : > > [49,]   10    8   12    1    2    9    4   11    3     7     5     6
: : > > [50,]   10    8    6    1    2    3    7    5   12     4    11     9
: : > > [51,]    7    2   12   10   11    6    4    8    3     1     5     9
: : > > [52,]    4    5    6    1    2   12   10   11    9     7     8     3
: : > > [53,]    1    2    3    7    5    6    4    8    9    10    11    12
: : > > [54,]   10    5    3    7   11    9    1    8    6     4     2    12
: : > > [55,]    7   11   12    4    2    3   10    8    6     1     5     9
: : > > [56,]    1    5    9    4   11   12   10    8    3     7     2     6
: : > > [57,]    4    5    9    7   11    3   10    2    6     1     8    12
: : > > [58,]   10   11    3    4    5    6    1    8   12     7     2     9
: : > > [59,]    4    8    9   10    5    6    7    2    3     1    11    12
: : > > [60,]    4    2   12    1    8    6   10    5    9     7    11     3
: : > > [61,]    4    8    6    7   11    9   10    5   12     1     2     3
: : > > [62,]    7    8    3   10    5    6    1   11   12     4     2     9
: : > > [63,]   10    5    3    7    8    6    1    2    9     4    11    12
: : > > [64,]   10    2    9    4   11   12    1    5    3     7     8     6
: : > > [65,]    1   11    6    4    8   12    7    2    3    10     5     9
: : > > [66,]    1    5    3    7   11    9    4    2   12    10     8     6
: : > > [67,]    4    2    6    7    5   12   10    8    9     1    11     3
: : > > [68,]    4   11   12   10    2    3    7    8    6     1     5     9
: : > > [69,]    4    5    6   10    2    3    7    8    9     1    11    12
: : > > [70,]    1   11   12   10    2    6    4    5    3     7     8     9
: : > > [71,]   10    5    6    7    8   12    4    2    9     1    11     3
: : > > [72,]   10    8   12    1   11    9    7    5    3     4     2     6
: : > > [73,]   10    8    3    7   11    9    4    5   12     1     2     6
: : > > [74,]    7    2   12    1    5    6    4    8    9    10    11     3
: : > > [75,]    7    2   12   10    8    9    1   11    6     4     5     3
: : > > [76,]    7    2    3    1    5    9    4    8   12    10    11     6
: : > > [77,]    1   11    3   10    5    6    7    2    9     4     8    12
: : > > [78,]    7    2    6   10   11   12    4    8    9     1     5     3
: : > > [79,]   10    8    6    7    5    3    1    2    9     4    11    12
: : > > [80,]   10   11    3    7    2   12    4    8    6     1     5     9
: : > > [81,]   10    5    6    1    8    3    4   11    9     7     2    12
: : > > [82,]    1   11    3    7    5   12   10    2    6     4     8     9
: : > > [83,]    4   11    9   10    5   12    7    2    6     1     8     3
: : > > [84,]    1   11   12    7    8    3    4    2    6    10     5     9
: : > > [85,]   10    2    9    7    5    6    1   11   12     4     8     3
: : > > [86,]    7   11    9    4    5    6   10    2   12     1     8     3
: : > > [87,]    4    5   12    7    2    3   10   11    6     1     8     9
: : > > [88,]    1    2   12    7    5    3   10    8    6     4    11     9
: : > > [89,]    1    8   12    7   11    9   10    2    6     4     5     3
: : > > [90,]    4    5    3   10   11    9    7    2    6     1     8    12
: : > > [91,]    4    5    6    1    2   12   10   11    9     7     8     3
: : > > [92,]   10   11    9    7    5   12    1    2    6     4     8     3
: : > > [93,]    4    2    3    7    8    6    1   11   12    10     5     9
: : > > [94,]    4    5    3   10    2   12    7    8    9     1    11     6
: : > > [95,]    4    8    3   10   11    9    1    2    6     7     5    12
: : > > [96,]    7    5   12   10   11    3    1    8    9     4     2     6
: : > > [97,]    4    2    3    1    8    6    7   11    9    10     5    12
: : > > [98,]    4   11    9    7    5   12   10    8    6     1     2     3
: : > > [99,]    1   11   12    4    5    6    7    8    3    10     2     9
: : > > [100,]    1    8    3    7    5    6   10    2   12     4    11     9
: : > > [101,]    7   11    6    4    8    3    1    2   12    10     5     9
: : > > [102,]    7   11   12    1    2    3   10    8    6     4     5     9
: : > > [103,]    4    5   12    1    2    9    7    8    3    10    11     6
: : > > [104,]   10   11   12    4    8    3    7    5    9     1     2     6
: : > > [105,]   10    5    9    1    2    3    4    8    6     7    11    12
: : > > [106,]   10   11    9    1    2   12    7    8    3     4     5     6
: : > > [107,]   10   11    3    4    8    9    7    5   12     1     2     6
: : > > [108,]    7    2    6    1   11    9    4    5   12    10     8     3
: : > > [109,]    1    8    6    7    2   12   10    5    3     4    11     9
: : > > [110,]    1   11   12    4    5    6    7    8    3    10     2     9
: : > > [111,]    7    8    6    1    5    3   10    2   12     4    11     9
: : > > [112,]    4    8    3    7    5    6    1    2    9    10    11    12
: : > > [113,]    1    2    9    4   11    6    7    5    3    10     8    12
: : > > [114,]    4   11    9    1    8    6    7    2    3    10     5    12
: : > > [115,]   10    8    3    4   11   12    7    2    9     1     5     6
: : > > [116,]    7   11   12    1    2    3    4    8    9    10     5     6
: : > > [117,]    1    5    3   10   11   12    7    8    9     4     2     6
: : > > [118,]    1   11    6    4    2    9   10    5   12     7     8     3
: : > > [119,]   10    2    3    1    5    9    4    8   12     7    11     6
: : > > [120,]    1    2    3    4   11   12    7    8    9    10     5     6
: : > > [121,]    7    8    3    4    5   12   10    2    6     1    11     9
: : > > [122,]    7    8    3    4    5   12   10    2    6     1    11     9
: : > > [123,]    4    5    3   10   11    9    7    8    6     1     2    12
: : > > [124,]    4    5    6    7   11    9    1    8   12    10     2     3
: : > > [125,]   10    8    6    1   11    9    4    2   12     7     5     3
: : > > [126,]   10    8   12    4   11    9    7    2    6     1     5     3
: : > > [127,]    7    8   12    1   11    6   10    5    9     4     2     3
: : > > [128,]    1    8   12   10   11    3    7    5    9     4     2     6
: : > > [129,]    7    8    3   10    2    6    1   11    9     4     5    12
: : > > [130,]    7   11    9    1    2    6   10    8    3     4     5    12
: : > > [131,]   10    2    3    4   11    9    1    5    6     7     8    12
: : > > [132,]    4   11    3    1    5    9   10    2    6     7     8    12
: : > > [133,]   10    2   12    7    8    3    4    5    6     1    11     9
: : > > [134,]    7   11    9    1    2    6   10    8    3     4     5    12
: : > > [135,]    7    8    3    4   11    6   10    2    9     1     5    12
: : > > [136,]   10    8    9    7   11   12    1    2    6     4     5     3
: : > > [137,]   10    8   12    4    5    3    1    2    9     7    11     6
: : > > [138,]    1    2    6   10    8   12    7   11    9     4     5     3
: : > > [139,]    4    5    3    7   11    9    1    2   12    10     8     6
: : > > [140,]    4    5   12    7    8    6   10   11    3     1     2     9
: : > > [141,]    7    2   12   10   11    6    4    8    3     1     5     9
: : > > [142,]   10   11   12    7    2    6    1    5    3     4     8     9
: : > > [143,]    7    2    3   10   11    6    1    8    9     4     5    12
: : > > [144,]    1    2    9   10    5   12    4    8    3     7    11     6
: : > > [145,]    1   11    6    4    8    9    7    5   12    10     2     3
: : > > [146,]    4    5    3   10    2    6    1   11    9     7     8    12
: : > > [147,]    7   11    9    1    2    3   10    8   12     4     5     6
: : > > [148,]    4    2    3    1    5   12    7    8    6    10    11     9
: : > > [149,]   10   11   12    4    8    3    1    2    9     7     5     6
: : > > [150,]    4    8    3   10    5    6    1   11    9     7     2    12
: : > > [151,]    1    8    6   10    5    9    4   11    3     7     2    12
: : > > [152,]    4    8    6    7   11   12   10    5    3     1     2     9
: : > > [153,]    7    2    3   10    5    6    4   11    9     1     8    12
: : > > [154,]   10    5   12    1    8    9    7    2    3     4    11     6
: : > > [155,]    1    8    6    4    2    9   10    5    3     7    11    12
: : > > [156,]   10    2    3    7    5    9    4   11   12     1     8     6
: : > > [157,]   10    5    3    1    2    6    7    8    9     4    11    12
: : > > [158,]    7   11   12    4    5    9   10    8    3     1     2     6
: : > > [159,]    7    5    3    1    8   12   10    2    6     4    11     9
: : > > [160,]    7    2    6    4   11    3    1    5   12    10     8     9
: : > > [161,]    7    5    3    1    2   12    4    8    9    10    11     6
: : > > [162,]    7    8   12    1    5    6   10   11    9     4     2     3
: : > > [163,]   10   11    9    4    8    6    1    2    3     7     5    12
: : > > [164,]    7   11    6    1    5    9    4    2   12    10     8     3
: : > > [165,]    4   11    9   10    8    3    7    2   12     1     5     6
: : > > [166,]    4    2    6   10    8    9    7   11   12     1     5     3
: : > > [167,]    7    5    3   10    2   12    4    8    6     1    11     9
: : > > [168,]    1    8   12    7    2    3    4    5    9    10    11     6
: : > > [169,]    7    8   12    1    5    6    4    2    3    10    11     9
: : > > [170,]    4    5    3    7    8    9    1    2   12    10    11     6
: : > > [171,]    7   11    9    1    8    6    4    2   12    10     5     3
: : > > [172,]   10    8    3    1    2    9    4   11   12     7     5     6
: : > > [173,]   10    5   12    7    8    9    4   11    3     1     2     6
: : > > [174,]   10   11    6    7    5    3    4    8   12     1     2     9
: : > > [175,]    7   11   12    1    2    3   10    8    9     4     5     6
: : > > [176,]    1   11   12    7    2    3    4    8    9    10     5     6
: : > > [177,]   10   11   12    4    5    3    7    8    6     1     2     9
: : > > [178,]   10    5    3    7    2    6    4    8   12     1    11     9
: : > > [179,]    1    5    6    7    2    9   10   11    3     4     8    12
: : > > [180,]    1   11   12   10    5    6    4    2    3     7     8     9
: : > > [181,]    7    2   12    4   11    9    1    5    6    10     8     3
: : > > [182,]   10   11   12    1    5    3    7    8    9     4     2     6
: : > > [183,]    4    8    3    1   11    9    7    2    6    10     5    12
: : > > [184,]    4    8    9    7    2    3   10    5    6     1    11    12
: : > > [185,]   10   11    9    1    5    6    7    2   12     4     8     3
: : > > [186,]   10    5   12    4    8    9    7    2    6     1    11     3
: : > > [187,]    4    2    3    1    8    6    7    5   12    10    11     9
: : > > [188,]   10    2    9    4   11   12    1    8    3     7     5     6
: : > > [189,]   10    2   12    7   11    3    4    5    9     1     8     6
: : > > [190,]    4    5    6    7    8    3   10   11    9     1     2    12
: : > > [191,]   10    5    9    1    2    3    7   11   12     4     8     6
: : > > [192,]    4   11    9    7    2    6   10    5    3     1     8    12
: : > > [193,]   10   11   12    1    2    6    4    5    9     7     8     3
: : > > [194,]   10    2    3    4   11   12    7    5    6     1     8     9
: : > > [195,]    4    2    6    7    8    9    1   11    3    10     5    12
: : > > [196,]   10    2   12    4    8    6    7    5    3     1    11     9
: : > > [197,]    7    5   12    4   11    9    1    2    3    10     8     6
: : > > [198,]   10    5    6    1   11    3    7    2    9     4     8    12
: : > > [199,]    1    2    9    7   11    3    4    8    6    10     5    12
: : > > [200,]    4    8    3    7   11   12    1    2    6    10     5     9
: : > >
: : > >
: : > >
: : > > >From: Robin Hankin <rksh <at> soc.soton.ac.uk>
: : > > >To: Jordi Altirriba GutiÃƒÂ©rrez  	<altirriba <at> hotmail.com>
: : > > >CC: r-help <at> stat.math.ethz.ch
: : > > >Subject: Re: [R] (no subject) (was: Permutations)
: : > > >Date: Wed, 14 Jul 2004 09:11:48 +0100
: : > > >
: : > > >Jordi
: : > > >
: : > > >try this
: : > > >
: : > > >
: : > > >R> x <- c(1,2,3,  10,11,12,  41,42,43,  81,82,83)
: : > > >R> dim(x) <- c(3,4)
: : > > >R> x
: : > > >      [,1] [,2] [,3] [,4]
: : > > >[1,]    1   10   41   81
: : > > >[2,]    2   11   42   82
: : > > >[3,]    3   12   43   83
: : > > >R>  jj <- t(apply(x,1,sample))
: : > > >R> jj
: : > > >      [,1] [,2] [,3] [,4]
: : > > >[1,]    1   41   10   81
: : > > >[2,]    2   11   82   42
: : > > >[3,]   12    3   43   83
: : > > >R> as.vector(jj)
: : > > >R>
: : > > >    [1]  1 2 12 41 11 3 10 82 43 81 42 83
: : > > >
: : > > >
: : > > >
: : > > >
: : > > >and I think that does what you want...
: : > > >
: : > > >We take the vector, rearrange it into a matrix with three rows, then 
: : >sample
: : > > >*within* the rows,
: : > > >then rearrange into a vector again.
: : > > >
: : > > >There will be one forbidden permutation, namely the identity (which 
may 
: : >or
: : > > >may not be
: : > > >desirable).
: : > > >
: : > > >This method doesn't allow "intra block" permutations.
: : > > >
: : > > >best
: : > > >
: : > > >rksh
: : > > >
: : > > >
: : > > >
: : > > >>  Dear R users,
: : > > >>  First of all, thanks for the incredibly fast answers and help of 
: : >Rolf,
: : > > >>Marc and Robert.
: : > > >>  Yes, I noticed that it was a lot of permutacions, but my intention 
: : >was
: : > > >>to make this process automatic and take only 5.000 - 10.000 
: : >permutations.
: : > > >>Therefore, I wanted only to take that "interesting permutations" with
: : > > >>"some information" [inter-block permutations].
: : > > >>  The reason why I'm interested in these permutations is because I'm 
: : >using
: : > > >>some packages of Bioconductor to analyse my data from some 
microarrays 
: : >and
: : > > >>I thought that perhaps could be interesting to see what happens when 
I
: : > > >>permute my data and I compare it against the not permuted data.
: : > > >>  Thanks again for your time and suggestions.
: : > > >>
: : > > >>Jordi Altirriba
: : > > >>Ph. D. Student
: : > > >>
: : > > >>Hospital Clinic-Barcelona-Spain
: : > > >>
: : > > >>______________________________________________
: : > > >>R-help <at> stat.math.ethz.ch mailing list
: : > > >>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
: : > > >>PLEASE do read the posting guide!
: : > > >>http://www.R-project.org/posting-guide.html
: : > > >
: : > > >
: : > > >--
: : > > >Robin Hankin
: : > > >Uncertainty Analyst
: : > > >Southampton Oceanography Centre
: : > > >SO14 3ZH
: : > > >tel +44(0)23-8059-7743
: : > > >initialDOTsurname <at> soc.soton.ac.uk (edit in obvious way; spam 
: : >precaution)
: : > >
: : > > ______________________________________________
: : > > R-help <at> stat.math.ethz.ch mailing list
: : > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
: : > > PLEASE do read the posting guide! 
: : >http://www.R-project.org/posting-guide.html
: : > >
: : >
: : 
: : ______________________________________________
: : R-help <at> stat.math.ethz.ch mailing list
: : https://www.stat.math.ethz.ch/mailman/listinfo/r-help
: : PLEASE do read the posting guide! http://www.R-project.org/posting-
guide.html
: : 
: :
: 
: ______________________________________________
: R-help <at> stat.math.ethz.ch mailing list
: https://www.stat.math.ethz.ch/mailman/listinfo/r-help
: PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
: 
:




More information about the R-help mailing list