# [Rd] order of levels in interaction()

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Nov 30 22:48:35 CET 2006

```On Thu, 30 Nov 2006, Deepayan Sarkar wrote:

> Hi,
>
> ?interaction says:
>
>
>     '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

No, for it also says

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, and differs from ':'.  (It is done this
way for compatibility with S.)

and reversing it would break things.  (It does, I tried it a while back.)

> as.vector(outer(l, lvs, paste, sep = sep))
>
> with
>
> as.vector(t(outer(l, lvs, paste, sep = sep)))
>
> in interaction.
>
> -Deepayan
>
> [1] http://tolstoy.newcastle.edu.au/R/help/06/08/32638.html
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

--
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

```