You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A user noted that design-generation functions only accommodate quantitative predictors. It'd be nice to have some provision for a response-surface design that can be used with additional categorical factors, e.g., suppliers.
I suggested as a short-term remedy to create a design for the categorical factor(s) and cross it with an RS design. I provided a quick-and-dirty function for this purpose:
# Cross a response-surface design `design` with another design `extras`
# `extras` may be a data frame or a list. If a list, it is converted to a data frame
# via expand.grid() (thus creating all combinations of the provided factor levels)
# This function does NOT randomize the design!
cross.with = function(design, extras) {
if (missing(extras))
return(design)
if (!is.list(extras))
stop("'extras' must be a list or data.frame")
if(!inherits(extras, "data.frame"))
extras = do.call(expand.grid, extras)
pieces = lapply(seq_len(nrow(extras)), function(i) {
des = design
for (nm in names(extras))
des[[nm]] = extras[[nm]][i]
des
})
do.call(rbind, pieces)
}
Illustration of use:
> des = rsm::ccd(2, random = FALSE)
> cross.with(des, list(trt = c("A", "B")))
run.order std.order x1.as.is x2.as.is Block trt
1 1 1 -1.000000 -1.000000 1 A
2 2 2 1.000000 -1.000000 1 A
3 3 3 -1.000000 1.000000 1 A
4 4 4 1.000000 1.000000 1 A
5 5 5 0.000000 0.000000 1 A
6 6 6 0.000000 0.000000 1 A
7 7 7 0.000000 0.000000 1 A
8 8 8 0.000000 0.000000 1 A
9 1 1 -1.414214 0.000000 2 A
10 2 2 1.414214 0.000000 2 A
11 3 3 0.000000 -1.414214 2 A
12 4 4 0.000000 1.414214 2 A
13 5 5 0.000000 0.000000 2 A
14 6 6 0.000000 0.000000 2 A
15 7 7 0.000000 0.000000 2 A
16 8 8 0.000000 0.000000 2 A
17 1 1 -1.000000 -1.000000 1 B
18 2 2 1.000000 -1.000000 1 B
19 3 3 -1.000000 1.000000 1 B
20 4 4 1.000000 1.000000 1 B
21 5 5 0.000000 0.000000 1 B
22 6 6 0.000000 0.000000 1 B
23 7 7 0.000000 0.000000 1 B
24 8 8 0.000000 0.000000 1 B
25 1 1 -1.414214 0.000000 2 B
26 2 2 1.414214 0.000000 2 B
27 3 3 0.000000 -1.414214 2 B
28 4 4 0.000000 1.414214 2 B
29 5 5 0.000000 0.000000 2 B
30 6 6 0.000000 0.000000 2 B
31 7 7 0.000000 0.000000 2 B
32 8 8 0.000000 0.000000 2 B
Data are stored in coded form using these coding formulas ...
x1 ~ x1.as.is
x2 ~ x2.as.is
The text was updated successfully, but these errors were encountered:
A user noted that design-generation functions only accommodate quantitative predictors. It'd be nice to have some provision for a response-surface design that can be used with additional categorical factors, e.g., suppliers.
I suggested as a short-term remedy to create a design for the categorical factor(s) and cross it with an RS design. I provided a quick-and-dirty function for this purpose:
Illustration of use:
The text was updated successfully, but these errors were encountered: