Re: [R] array addition

From: Robin Hankin <>
Date: Fri, 21 Dec 2007 08:55:08 +0000

[snip snip snip]

> suppose I have two arrays x1,x2 of dimensions a1,b1,c1 and
> a2,b2,c2 respectively.
> I want x = x1 "+" x2 with dimensions c(max(a1,a2), max(b1,b2),max
> (c1,c2))

[snip snip snip]

perhaps it wouldn't be too much to ask for you to check the most recent version of the "magic" package?

[and we *really* don't want any whingeing about magic_1.3-31 not being available. If I were you, I'd email the package maintainer and tell him to release updates in a more timely manner. . . ]

 > library(magic)
 > aplus
function (...)

     args <- list(...)
     if (length(args) == 1) {
     if (length(args) > 2) {
         jj <-"Recall", c(args[-1]))
         return("Recall", c(list(args[[1]]), list(jj))))
     a <- args[[1]]
     b <- args[[2]]
     dima <- dim(a)
     dimb <- dim(b)
     stopifnot(length(dima) == length(dimb))
     out <- array(0, pmax(dima, dimb))
     return("[<-", c(list(out), lapply(dima, seq_len),
         list(a))) +"[<-", c(list(out), lapply(dimb,
         seq_len), list(b))))

Robin Hankin
Uncertainty Analyst and Neutral Theorist,
National Oceanography Centre, Southampton
European Way, Southampton SO14 3ZH, UK
  tel  023-8059-7743

______________________________________________ mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 21 Dec 2007 - 08:58:14 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 Fri 21 Dec 2007 - 11:30:20 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.