First bit:
> x <- c(3,2,2)
> expand.grid(sapply(x,seq_len))
Var1 Var2 Var3
1 1 1 1
2 2 1 1
3 3 1 1
4 1 2 1
5 2 2 1
6 3 2 1
7 1 1 2
8 2 1 2
9 3 1 2
10 1 2 2
11 2 2 2
12 3 2 2
>
second bit I'm not sure about. I didn't quite get why d=2 implied the
order is 2,1.
Could you post a small self-contained example?
HTH
rksh
Laura Bonnett wrote:> Hi R-helpers,
>
> I have two queries relating to generalising to n dimensions:
>
> What I want to do in the first one is generalise the following statement:
> expand<-expand.grid(1:x[1],1:x[2],...1:x[n]) where x is a vector of
integers
> and expand.grid gives every combination of the set of numbers, so for
> example, expand.grid(1:2, 1:3) takes 1,2 and 1,2,3 and gives 1,1 2,1
> 1,2 2,2 1,3 2,3
> My x vector has varying lengths and I can't find a way of giving it
every
> set without stating each set individually.
>
> Secondly and similarly, I want to get the table within crosstable that has
> the elements defined by the combinations given in expand above
> crosstable[,,expand[d,1],expand[d,2],expand[d,3],...expand[d,n]] where
> crosstable is just a crosstabulation of an n+2-dimensional dataset and I am
> trying to pick out those that are in combination 'd' of expand.
> So for example, using x[1]=2 and x[2]=3 as above example, if d =2 then the
> order is 2,1 so I take crosstable[,,2,1].
>
> Can anyone suggest a way to give the code every set without stating each
set
> individually?
>
> Thank you
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
--
Robin K. S. Hankin
Senior Research Associate
Cambridge Centre for Climate Change Mitigation Research (4CMR)
Department of Land Economy
University of Cambridge
rksh1 at cam.ac.uk
01223-764877