Hi Is it possible to subset an n-dimensional array by a vector of n dimensions? E.g. assume I have> x <- array(1:24, dim=2:4) > x[1,1,2][1] 7> dims <- c(1,1,2)I would like a function that I can supply x and dims as parameters to, and have it return 7. Also, I would like to do something like:> x[1,1,][1] 1 7 13 19> dims2<- c(1,1,NA)And have a function of x and dims2 that gives me back [1] 1 7 13 19 Does such a thing exist? Thanks Richard -- Richard D. Pearson richard.pearson at postgrad.manchester.ac.uk School of Computer Science, http://www.cs.man.ac.uk/~pearsonr University of Manchester, Tel: +44 161 275 6178 Oxford Road, Mob: +44 7971 221181 Manchester M13 9PL, UK. Fax: +44 161 275 6204
I think you are looking for subscripting with a matrix: x[cbind(1,1,2)] See, for instance, the subscripting section of chapter 1 of S Poetry. Patrick Burns patrick at burns-stat.com +44 (0)20 8525 0696 http://www.burns-stat.com (home of S Poetry and "A Guide for the Unwilling S User") Richard Pearson wrote:> Hi > > Is it possible to subset an n-dimensional array by a vector of n > dimensions? E.g. assume I have > >> x <- array(1:24, dim=2:4) >> x[1,1,2] > [1] 7 >> dims <- c(1,1,2) > > I would like a function that I can supply x and dims as parameters to, > and have it return 7. Also, I would like to do something like: > >> x[1,1,] > [1] 1 7 13 19 >> dims2<- c(1,1,NA) > > And have a function of x and dims2 that gives me back [1] 1 7 13 19 > > Does such a thing exist? > > Thanks > > Richard > >