[R] expand.grid and the first level of a factor
    John Fox 
    jfox at mcmaster.ca
       
    Sat May  3 14:54:45 CEST 2003
    
    
  
Dear Giovanni,
At 12:53 PM 5/3/2003 +0000, Giovanni Marchetti wrote:
>I do not understand this behaviour of expand.grid:
>
> > expand.grid(x = c("b", "a"), y = c(1, 2))$x
>[1] b a b a
>Levels: b a
> > expand.grid(x = c("b", "a"))$x
>[1] b a
>Levels: a b
>
>Why the first level of the factor x depends on the number
>of arguments of expand.grid? Apparently, I can set
>the order of the levels only when the number of
>arguments in > 1. In the second example, the order
>is lexicographic.
As the help for expand.grid states, expand.grid generates all combinations 
of values of its arguments. Take a look at the entirety of the result:
 > expand.grid(x = c("b", "a"), y = c(1, 2))
   x y
1 b 1
2 a 1
3 b 2
4 a 2
Compare, for example, to
         expand.grid(x = c("b", "a"), y = c(1, 2), z=c(TRUE, FALSE))
which generates 8 rows.
I hope that this helps,
  John
-----------------------------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox
    
    
More information about the R-help
mailing list