My understanding of matrix subscripting is that this can be used to access
arbitrary elements from an array and return them as a vector, but I don't
understand how that helps me here. I've now written a function that seems to do
what I originally wanted, but I've also realised I want to do assignment too. I
need to read up more on writing assignment functions to do this. However, I'm
thinking that someone has already solved this, in a far more elegant way than
my hacking :-). Here's my function for anyone interested:
subsetArray <- function(x, subset) {
+ subsetString <- paste(subset, collapse=",")
+ subsetString <- gsub("NA","",subsetString)
+ evalString <- paste(expression(x), "[", subsetString, "]")
+ eval(parse(text=evalString))
+ }
x <- array(1:24, dim=2:4)
subsetArray(x, c(1,1,2))
[1] 7
subsetArray(x, c(1,NA,2))
[1] 7 9 11
subsetArray(x, c(1,NA,NA))
[,1] [,2] [,3] [,4]
[1,] 1 7 13 19
[2,] 3 9 15 21
[3,] 5 11 17 23
subsetArray(x, c(1,1,2)) <- 25
Error in subsetArray(x, c(1, 1, 2)) <- 25 :
could not find function "subsetArray<-"
Best wishes
Richard.
Patrick Burns wrote:
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
[EMAIL PROTECTED]
+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
--
Richard D. Pearson [EMAIL PROTECTED]
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
______________________________________________
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.