This function can generate a Box-Behnken design in 3 to 7 factors, and optionally will block it orthogonally if there are 4 or 5 factors. It can also randomize the design.

`bbd(k, n0 = 4, block = (k == 4 | k == 5), randomize = TRUE, coding)`

k

A formula, or an integer giving the number of variables. If the formula has a left-hand side, the variables named there are appended to the design and initialized to `NA`

.

n0

Number of center points in each block.

block

Logical value specifying whether or not to block the design; or a character string (taken as `TRUE`

) giving the desired name for the blocking factor.
Only BBDs with 4 or 5 factors can be blocked. A 4-factor BBD has three orthogonal blocks, and a 5-factor BBD has two.

randomize

Logical value determining whether or not to randomize the design. If `block`

is `TRUE`

, each block is randomized separately.

coding

Optional list of formulas. If this is provided, it overrides the default coding formulas.

A `coded.data`

object with the generated design and the additional valiables `run.order`

and `std.order`

. The blocking variable, if present, will be a `factor`

; all other variables will be numeric.

Box-Behnken designs (BBDs) are useful designs for fitting second-order response-surface models. They use only three levels of each factor (compared with 5 for central-composite designs) and sometimes fewer runs are required than a CCD. This function uses an internal table of BBDs; it only works for 3 to 7 factors.

If `k`

is specified as a formula, the names in the formula determine the names of the factors in the generated design. Otherwise, the names will be `x1, x2, ...`

. If `coding`

is not specified, default codings are created in the form `x ~ x.as.is`.

Lenth RV (2009) ``Response-Surface Methods in R, Using rsm'',
*Journal of Statistical Software*, 32(7), 1--17.
https://www.jstatsoft.org/v32/i07/.

Myers, RH, Montgomery, DC, and Anderson-Cook, CM (2009)
*Response Surface Methodology* (3rd ed.), Wiley.

# NOT RUN { library(rsm) ### Simple 3-factor case, not randomized so structure is evident bbd(3, randomize=FALSE) ### 5-factor BBD, divided between two plants bbd(y1 + y2 ~ A + B + C + D + E, n0 = 5, block = "Plant") # }