Find a good central-composite design
ccd.pick.RdThis function looks at all combinations of specified design parameters
for central-composite designs, calculates other quantities such as
the alpha values for rotatability and orthogonal blocking, imposes
specified restrictions, and outputs the best combinations in a specified order.
This serves as an aid in identifying good designs.  The design itself can
then be generated using ccd, or in pieces using cube, star, etc.
Usage
ccd.pick(k, n.c = 2^k, n0.c = 1:10, blks.c = 1, n0.s = 1:10, bbr.c = 1, 
         wbr.s = 1, bbr.s = 1, best = 10, sortby = c("agreement", "N"), 
         restrict)Arguments
- k
- Number of factors in the design 
- n.c
- Number(s) of factorial points in each cube block 
- n0.c
- Numbers(s) of center points in each cube block 
- blks.c
- Number(s) of cube blocks that together comprise one rep of the cube portion 
- n0.s
- Numbers(s) of center points in each star (axis-point) block 
- bbr.c
- Number(s) of copies of each cube block 
- wbr.s
- Number(s) of replications of each star poit within a block 
- bbr.s
- Number(s) of copies of each star block 
- best
- How many designs to list. Use - best=NULLto list them all
- sortby
- String(s) containing numeric expressions that are each evaluated and used as sorting key(s). Specify - sortby=NULLif no sorting is desired.
- restrict
- Optional string(s) containing Boolean expressions that are each evaluated. Only combinations where all expressions are - TRUEare retained.
Details
A grid is created with all combinations of n.c, n0.c, ..., bbr.s.
  Then for each row of the grid, several additional variables
  are computed:
- n.s
- The total number of axis points in each star block 
- N
- The total number of observations in the design 
- alpha.rot
- The position of axis points that make the design rotatable. Rotatability is achieved when design moment [iiii] = 3[iijj] for i and j unequal. 
- alpha.orth
- The position of axis points that make the blocks mutually orthogonal. This is achieved when design moments [ii] within each block are proprtional to the number of observations within the block. 
- agreement
- The absolute value of the log of the ratio of - alpha.rotand- alpha.orth. This measures agreement between the two- alphas.
If restrict is provided, only the cases where the expressions are all TRUE are kept.
  (Regardless of restrict, rows are eliminated where there are
  insufficient degrees of freedom to estimate all needed effects for a
  second-order model.)
  The rows are
  sorted according to the expressions in sortby; the default is to sort
  by agreement and N, which is suitable for finding designs
  that are both rotatable and orthogonally blocked.
Value
A data.frame containing best or fewer rows, and variables
  n.c, n0.c, blks.c, n.s, n0.s, bbr.c,
  wbr.s, bbr.s,  N, alpha.rot, and alpha.orth,
  as described above.
References
Lenth RV (2009) “Response-Surface Methods in R, Using rsm”, Journal of Statistical Software, 32(7), 1–17. doi:10.18637/jss.v032.i07
Myers, RH, Montgomery, DC, and Anderson-Cook, CM (2009) Response Surface Methodology (3rd ed.), Wiley.
Examples
library(rsm)
### List CCDs in 3 factors with between 10 and 14 runs per block
ccd.pick(3, n0.c=2:6, n0.s=2:8)
#>    n.c n0.c blks.c n.s n0.s bbr.c wbr.s bbr.s  N alpha.rot alpha.orth
#> 1    8    6      1   6    4     1     1     1 24  1.681793   1.690309
#> 2    8    5      1   6    3     1     1     1 22  1.681793   1.664101
#> 3    8    3      1   6    2     1     1     1 19  1.681793   1.705606
#> 4    8    4      1   6    2     1     1     1 20  1.681793   1.632993
#> 5    8    4      1   6    3     1     1     1 21  1.681793   1.732051
#> 6    8    5      1   6    4     1     1     1 23  1.681793   1.754116
#> 7    8    6      1   6    3     1     1     1 23  1.681793   1.603567
#> 8    8    6      1   6    5     1     1     1 25  1.681793   1.772811
#> 9    8    2      1   6    2     1     1     1 18  1.681793   1.788854
#> 10   8    5      1   6    2     1     1     1 21  1.681793   1.568929
# (Generate the design that is listed first:) 
# ccd(3, n0=c(6,4))
### Find designs in 5 factors containing 1, 2, or 4 cube blocks
### of 8 or 16 runs, 1 or 2 reps of each axis point,
### and no more than 70 runs altogether
ccd.pick(5, n.c=c(8,16), blks.c=c(1,2,4), wbr.s=1:2, restrict="N<=70")
#>    n.c n0.c blks.c n.s n0.s bbr.c wbr.s bbr.s  N alpha.rot alpha.orth
#> 1   16    6      1  10    1     1     1     1 33  2.000000   2.000000
#> 2   16    8      1  10    2     1     1     1 36  2.000000   2.000000
#> 3   16   10      1  10    3     1     1     1 39  2.000000   2.000000
#> 4   16    5      2  20    1     1     2     1 63  2.000000   2.000000
#> 5   16    6      2  20    2     1     2     1 66  2.000000   2.000000
#> 6    8    3      4  20    2     1     2     1 66  2.000000   2.000000
#> 7   16    7      2  20    3     1     2     1 69  2.000000   2.000000
#> 8   16    8      2  10    7     1     1     1 65  2.378414   2.380476
#> 9    8    4      4  10    7     1     1     1 65  2.378414   2.380476
#> 10  16    1      2  10    2     1     1     1 46  2.378414   2.376354