[R] How to make a 2-dim array being "interpreted" as an array rather than as a matrix

From: Søren Højsgaard <Soren.Hojsgaard_at_agrsci.dk>
Date: Wed, 05 Mar 2008 01:13:32 +0100


Dear List  

A 2-dimensional array seems to be "interpreted" as a matrix whereas higher dimensional arrays are interpreted as arrays, e.g.  

> a1 <- array(1:8,c(2,2,2))
> class(a1)

[1] "array"
> a2 <- array(1:4,c(2,2))
> class(a2)
[1] "matrix"

If I write a generic function (apologies if this is the wrong word) on arrays as  

foo <- function(x) UseMethod("foo")
foo.array <- function(x) sum(x)

then this fails on a 2-dimensional array:  

> foo(a1)

[1] 36
> foo(a2)

Error in UseMethod("foo") : no applicable method for "foo"  

Is there any way in which I can "force" a2 to being "interpreted" as having class "array" rather than "matrix" so that foo will work on a2???  

Thanks in advance
Søren          



R-help_at_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. Received on Wed 05 Mar 2008 - 00:15:55 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 05 Mar 2008 - 01:30:20 GMT.

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

list of date sections of archive