1. I want to extend the 'array' class, and prefer to use S4 in the belief that this is the best structure for new projects (as the documentation says). I actually wish to do something similar to the excellent Oarray by Jonathan Rougier, but as this class is S3, I can't see how to extend it by S4. Am I being dumb here? 2. Seeking then to define a similar class in S4, my principal task is to modify (extend?) a the extractor "[", modifying the range variables i,j,... . I run into problems here, though. The following is a minimal example: setClass("xarray",representation("array")) setMethod(f="[", signature=signature("xarray","ANY"), definition=function(x,i,j, ..., drop) { xcall <- match.call() #sundry processes on xcall to adjust i,j,... y <- x at .Data xcall[[2]] <- as.name("y") eval(xcall) } ) foo <- new("xarray",array(1:24,c(2,3,4))) foo[1,1,1,drop=FALSE] #gives expected result i.e. a 1 in a [1,1,1] array foo[1,1,,drop=FALSE] #again gives the expected result in a [1,1,4] array foo[1,,,drop=FALSE] #gives an error "Error in y[i = 1, , drop = FALSE] : incorrect number of dimensions" Examining match.call() e.g. in the browser shows that there is indeed one fewer argument than is required Called from: foo[1, , , drop = FALSE] Browse[1]> xcall y[i = 1, , drop = FALSE] 3. I welcome input on this, at different levels, including the following: - Is there a relatively small correction to what I have attempted and all is well? - Can I instead extend the (perfectly functional) S3 class Oarray using S4? - What is the better way to do what I am attempting in the last 3 lines of my method i.e. a small tweak to the arguments of a S4 class using variables from its slots, then calling the method for the superclass? - Is there a package on CRAN which, by my studying it closely, I will gain enlightenment? I might also get RTFM, but then I *have* read quite a lot of the documentation. If the advice is RTFM, I request some assistance in finding the correct sections for my question. I would happily read the whole of the Green Book if I could gain enlightenment from it, but there have been a lot of changes since it was written. Thanks - Giles ********************************************************************** This is a commercial communication from Commerzbank AG.\ \ T...{{dropped}}