Description Usage Arguments Details Value Warning Author(s) Examples
allPerms
is a utility function to return the set of
permutations for a given R object and a specified permutation design.
1 2 3 4 5 6 7 8 9 
n 
the number of observations or an 'object' from which the
number of observations can be determined via 
control 
a list of control values describing properties of the
permutation design, as returned by a call to

check 
logical; should 
object 
for 
... 
arguments to other methods. 
x 
an object of class 
Function allPerms
enumerates all possible permutations for the
number of observations and the selected permutation scheme. It has
print
and summary
methods. allPerms
returns a matrix containing all possible permutations, possibly
containing the observed ordering (if argument observed
is
TRUE
). The rows of this matrix are the various permutations and
the columns reflect the number of samples.
With free permutation designs, and restricted permutation schemes with
large numbers of observations, there are a potentially huge number of
possible permutations of the samples. It would be inefficient, not to
mention incredibly time consuming, to enumerate them all. Storing all
possible permutations would also become problematic in such cases. To
control this and guard against trying to evaluate too large a number
of permutations, if the number of possible permutations is larger than
getMaxperm(control)
, allPerms
exits with an error.
The as.matrix
method sets the control
and seed
attributes to NULL
and removes the "permutationMatrix"
class, resulting in a standard matrix object.
For allPerms
, and object of class "allPerms"
, a matrix
whose rows are the set of all possible permutations for the supplies
number of observations and permutation scheme selected. The matrix has
two additional attributes control
and
observed
. Attribute control
contains the argument
control
(possibly updated via check
). Attribute
observed
contains argument observed
.
If permuting the strata themselves, a balanced design is required (the
same number of observations in each level of strata
. This is
common to all functions in the package.
Gavin Simpson
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  ## allPerms can work with a vector
vec < c(3,4,5)
allPerms(vec) ## free permutation
## enumerate all possible permutations for a more complicated
## design
fac < gl(2,6)
ctrl < how(within = Within(type = "grid", mirror = FALSE,
constant = TRUE, nrow = 3, ncol = 2),
plots = Plots(strata = fac))
Nobs < length(fac)
numPerms(seq_len(Nobs), control = ctrl) ## 6
(tmp < allPerms(Nobs, control = update(ctrl, observed = TRUE)))
(tmp2 < allPerms(Nobs, control = ctrl))
## turn on mirroring
##ctrl$within$mirror < TRUE
ctrl < update(ctrl, within = update(getWithin(ctrl), mirror = TRUE))
numPerms(seq_len(Nobs), control = ctrl)
(tmp3 < allPerms(Nobs, control = update(ctrl, observed = TRUE)))
(tmp4 < allPerms(Nobs, control = ctrl))
## prints out details of the permutation scheme as
## well as the matrix of permutations
summary(tmp3)
summary(tmp4)

[,1] [,2] [,3]
[1,] 1 3 2
[2,] 2 1 3
[3,] 2 3 1
[4,] 3 1 2
[5,] 3 2 1
[1] 6
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 2 3 4 5 6 1 8 9 10 11 12 7
[2,] 3 4 5 6 1 2 9 10 11 12 7 8
[3,] 4 5 6 1 2 3 10 11 12 7 8 9
[4,] 5 6 1 2 3 4 11 12 7 8 9 10
[5,] 6 1 2 3 4 5 12 7 8 9 10 11
[6,] 1 2 3 4 5 6 7 8 9 10 11 12
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 2 3 4 5 6 1 8 9 10 11 12 7
[2,] 3 4 5 6 1 2 9 10 11 12 7 8
[3,] 4 5 6 1 2 3 10 11 12 7 8 9
[4,] 5 6 1 2 3 4 11 12 7 8 9 10
[5,] 6 1 2 3 4 5 12 7 8 9 10 11
[1] 12
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 2 3 4 5 6 1 8 9 10 11 12 7
[2,] 3 4 5 6 1 2 9 10 11 12 7 8
[3,] 4 5 6 1 2 3 10 11 12 7 8 9
[4,] 5 6 1 2 3 4 11 12 7 8 9 10
[5,] 6 1 2 3 4 5 12 7 8 9 10 11
[6,] 1 2 3 4 5 6 7 8 9 10 11 12
[7,] 1 6 5 4 3 2 7 12 11 10 9 8
[8,] 2 1 6 5 4 3 8 7 12 11 10 9
[9,] 3 2 1 6 5 4 9 8 7 12 11 10
[10,] 4 3 2 1 6 5 10 9 8 7 12 11
[11,] 5 4 3 2 1 6 11 10 9 8 7 12
[12,] 6 5 4 3 2 1 12 11 10 9 8 7
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 2 3 4 5 6 1 8 9 10 11 12 7
[2,] 3 4 5 6 1 2 9 10 11 12 7 8
[3,] 4 5 6 1 2 3 10 11 12 7 8 9
[4,] 5 6 1 2 3 4 11 12 7 8 9 10
[5,] 6 1 2 3 4 5 12 7 8 9 10 11
[6,] 1 6 5 4 3 2 7 12 11 10 9 8
[7,] 2 1 6 5 4 3 8 7 12 11 10 9
[8,] 3 2 1 6 5 4 9 8 7 12 11 10
[9,] 4 3 2 1 6 5 10 9 8 7 12 11
[10,] 5 4 3 2 1 6 11 10 9 8 7 12
[11,] 6 5 4 3 2 1 12 11 10 9 8 7
Complete enumeration of permutations
Permutation Design:
Blocks:
Defined by: none
Plots:
Plots: fac
Permutation type: none
Mirrored?: No
Within Plots:
Permutation type: grid
Mirrored?: Yes
Different permutation within each Plot?: No
Grid dimensions: 3 rows 2 cols
Permutation details:
Number of permutations: 199
Max. number of permutations allowed: 9999
Evaluate all permutations?: No. Activation limit: 5040
All permutations:
Contains observed ordering?: Yes
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 2 3 4 5 6 1 8 9 10 11 12 7
[2,] 3 4 5 6 1 2 9 10 11 12 7 8
[3,] 4 5 6 1 2 3 10 11 12 7 8 9
[4,] 5 6 1 2 3 4 11 12 7 8 9 10
[5,] 6 1 2 3 4 5 12 7 8 9 10 11
[6,] 1 2 3 4 5 6 7 8 9 10 11 12
[7,] 1 6 5 4 3 2 7 12 11 10 9 8
[8,] 2 1 6 5 4 3 8 7 12 11 10 9
[9,] 3 2 1 6 5 4 9 8 7 12 11 10
[10,] 4 3 2 1 6 5 10 9 8 7 12 11
[11,] 5 4 3 2 1 6 11 10 9 8 7 12
[12,] 6 5 4 3 2 1 12 11 10 9 8 7
Complete enumeration of permutations
Permutation Design:
Blocks:
Defined by: none
Plots:
Plots: fac
Permutation type: none
Mirrored?: No
Within Plots:
Permutation type: grid
Mirrored?: Yes
Different permutation within each Plot?: No
Grid dimensions: 3 rows 2 cols
Permutation details:
Number of permutations: 198
Max. number of permutations allowed: 9999
Evaluate all permutations?: No. Activation limit: 5040
All permutations:
Contains observed ordering?: No
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 2 3 4 5 6 1 8 9 10 11 12 7
[2,] 3 4 5 6 1 2 9 10 11 12 7 8
[3,] 4 5 6 1 2 3 10 11 12 7 8 9
[4,] 5 6 1 2 3 4 11 12 7 8 9 10
[5,] 6 1 2 3 4 5 12 7 8 9 10 11
[6,] 1 6 5 4 3 2 7 12 11 10 9 8
[7,] 2 1 6 5 4 3 8 7 12 11 10 9
[8,] 3 2 1 6 5 4 9 8 7 12 11 10
[9,] 4 3 2 1 6 5 10 9 8 7 12 11
[10,] 5 4 3 2 1 6 11 10 9 8 7 12
[11,] 6 5 4 3 2 1 12 11 10 9 8 7
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.