[Rd] order of levels in interaction()

Deepayan Sarkar deepayan.sarkar at gmail.com
Thu Nov 30 22:25:36 CET 2006


?interaction says:

See Also:

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

This is not quite true (or maybe 'similar' is the operative word), since:

> f <- factor(1:3); g <- factor(letters[1:3])
> levels(f:g)
[1] "1:a" "1:b" "1:c" "2:a" "2:b" "2:c" "3:a" "3:b" "3:c"
> levels(interaction(f, g, sep = ":"))
[1] "1:a" "2:a" "3:a" "1:b" "2:b" "3:b" "1:c" "2:c" "3:c"

Note the different order of the levels. I like the order in f:g better
(and at least one other person agrees [1] ), but I also want the
flexibility of having a 'sep' argument. Would it be possible to change
interaction to allow this? A simple fix that makes interaction behave
like ":" is to replace

as.vector(outer(l, lvs, paste, sep = sep))


as.vector(t(outer(l, lvs, paste, sep = sep)))

in interaction.


[1] http://tolstoy.newcastle.edu.au/R/help/06/08/32638.html

More information about the R-devel mailing list