Learn R Programming

base (version 3.6.2)

interaction: Compute Factor Interactions

Description

interaction computes a factor which represents the interaction of the given factors. The result of interaction is always unordered.

Usage

interaction(…, drop = FALSE, sep = ".", lex.order = FALSE)

Arguments

the factors for which interaction is to be computed, or a single list giving those factors.

drop

if drop is TRUE, unused factor levels are dropped from the result. The default is to retain all factor levels.

sep

string to construct the new level labels by joining the constituent ones.

lex.order

logical indicating if the order of factor concatenation should be lexically ordered.

Value

A factor which represents the interaction of the given factors. The levels are labelled as the levels of the individual factors joined by sep which is . by default.

By default, when lex.order = FALSE, the levels are ordered so the level of the first factor varies fastest, then the second and so on. This is the reverse of lexicographic ordering (which you can get by lex.order = TRUE), and differs from :. (It is done this way for compatibility with S.)

References

Chambers, J. M. and Hastie, T. J. (1992) Statistical Models in S. Wadsworth & Brooks/Cole.

See Also

factor; : where f:g is similar to interaction(f, g, sep = ":") when f and g are factors.

Examples

Run this code
# NOT RUN {
a <- gl(2, 4, 8)
b <- gl(2, 2, 8, labels = c("ctrl", "treat"))
s <- gl(2, 1, 8, labels = c("M", "F"))
interaction(a, b)
interaction(a, b, s, sep = ":")
stopifnot(identical(a:s,
                    interaction(a, s, sep = ":", lex.order = TRUE)),
          identical(a:s:b,
                    interaction(a, s, b, sep = ":", lex.order = TRUE)))
# }

Run the code above in your browser using DataLab