Re: [Rd] "[" operator and indexing ambiguity

From: Tony Plate <tplate_at_blackmesacapital.com>
Date: Fri 26 Jan 2007 - 18:47:18 GMT

You can find this info using the function nargs(). I've used this with S3 classes, and as far as I know it should work with S4 classes too. See ?nargs for examples.

Bradley Buchsbaum wrote:
> Hi,
>
> I am working on writing some S4 classes that represent
> multidimensional (brain) image data. I would like these classes to
> support standard array indexing. I have been studying the Matrix and
> EBImage (http://www.bioconductor.org/packages/1.9/bioc/html/EBImage.html)
> packages to see how this is done.
>
> When using objects of the "array" class directly, R distinguishes
> between the calls:
>
> x[i,,] and x[i]
>
> with the former returning a 2D array of values and the latter
> returning a single value. The question I have is whether this same
> behavior can be simulated in classes that do not inherit from the
> "array" class directly? (See below for a snippet from the EBImage
> package which suggests that it cannot).
>
> My guess is that native array indexing is making use of the
> information provided by the commas, and this is unavailable to user
> implemented class methods?
>
> thanks,
>
> Brad Buchsbaum
>
>
>
> # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> setMethod("[", signature(x = "Image", i = "numeric", j = "missing"),
> function(x, i, j, k, ..., drop) {
> if (missing(k)) {
> warning("using index [int], cannot distinguish from
> [int,,ANY], use [int,1:dim(x)[2],ANY] otherwise")
> tmp = x@.Data[i, drop = FALSE]
> }
> else {
> tmp = x@.Data[i, , k, drop = FALSE]
> }
> ...
> }
>
> ______________________________________________
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat Jan 27 05:51:17 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 26 Jan 2007 - 23:31:16 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.