[Rd] Suggestion: Dimension-sensitive attributes

Henrik Bengtsson hb at stat.berkeley.edu
Sun Jun 7 23:42:08 CEST 2009


Hi,

maybe this has been suggested before, but would it be possible,
without not breaking too much existing code, to add other "dimension
vector attributes" in addition to 'dimnames'?  These attributes would
then be subsetted just like dimnames.

Something like this:

> x <- array(1:30, dim=c(2,3,5))
> dimnames(x) <- list(c("a", "b"), c("a1", "a2", "a3"), NULL);
> dimattr(x, "misc") <- list(1:2, list(x=1:5, y=letters[1:8], z=NA), letters[1:5]);

> y <- x[,1:2,2:3]
> str(dimnames(y))
List of 3
 $ : chr [1:2] "a" "b"
 $ : chr [1:2] "a1" "a2"
 $ : NULL
> str(dimattr(x, "misc"))
List of 3
 $ : int [1:2] 1 2
 $ :List of 2
  ..$ x: int [1:5] 1 2 3 4 5
  ..$ y: chr [1:8] "a" "b" "c" "d" ...
 $ : chr [1:2] "b" "c"

 I can imagine this needs to be added in several places and functions
such as is.vector() needs to be updated etc.  It is not a quick
migration, but is it something worth considering for the future?

/Henrik



More information about the R-devel mailing list