[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:
>
> 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

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



More information about the R-devel mailing list