Can I ask what a and v are? Thanks,
Laura On Sat, Aug 23, 2008 at 11:41 AM, Robin Hankin <[EMAIL PROTECTED]> wrote: > Laura Bonnett wrote: > >> crosstable[,,expand[d,1],expand[d,2],expand[d,3],...expand[d,n]] >> 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, for 5-dimensional data using your example: >> 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 >> d refers to the row of the matrix above - d=2 is 2,1,1 so >> crosstable[,,2,1,1] would retrieve all the data where Var1 =2, Var2=1, >> Var3=1 and the two remaining variables are given in the crosstabulations for >> all values. >> Is that any better? >> >> > OK I think I understand. The magic package uses this type of construction > extensively, but not this particular one. > > It's trickier than I'd have expected. > > Try this: > > f <- function(a,v){ > jj <- > sapply(dim(a)[seq_len(length(dim(a))-length(v))],seq_len,simplify=FALSE) > jj <- c(jj , as.list(v)) > do.call("[" , c(list(a) , jj, drop=TRUE)) > } > > > > [you will have to coerce the output from expand.grid() to a matrix in order > to extract a row from it] > > > HTH > > rksh > > > > > > > > > -- > Robin K. S. Hankin > Senior Research Associate > Cambridge Centre for Climate Change Mitigation Research (4CMR) > Department of Land Economy > University of Cambridge > [EMAIL PROTECTED] > 01223-764877 > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.