On Apr 16, 2012, at 4:04 PM, David A Vavra wrote:

even now you _could_ be clearer

I fail to see why it's unclear.

I'm after T1 + T2 + T3 + ...
Which would be one number ... i.e. the result you originally said you
did not want.

I think it's precisely what I want. If I have two 3d tables, T1 and T2, then
say either
        1) T1 + T2
        2) T1 - T2
(1) yields a third table equal to the sum of the individual cells and (2) yields a table full of zeroes. At least it does for matrices. Are you saying
the T1+T2+T3+... above is equivalent to:

  sum(T1)+sum(T2)+sum(T3)+....

when the table has more than 2d? I tried it out by hand I get the result I'm
after.

For me (with my slightly constricted mindset) it would have been clearer to have started out talking about matrices and arrays. An example would have save a bunch of time.

What I want is a general solution. Reduce may be the answer but I
find the documentation for it a bit daunting. Not to mention that it is far
from obvious that I should have originally thought of using it.

It is a function designed to do exactly what you requested: "Reduce uses a binary function to successively combine the elements of a given vector". As it turns out the term 'vector' in this case includes lists of classed and/or dimensioned objects rather than being restricted to atomic vectors.

--
David.


DAV



-----Original Message-----
From: David Winsemius [mailto:dwinsem...@comcast.net]
Sent: Monday, April 16, 2012 3:26 PM
To: David A Vavra
Cc: 'Petr Savicky'; r-help@r-project.org
Subject: Re: [R] Effeciently sum 3d table


On Apr 16, 2012, at 2:43 PM, David A Vavra wrote:

Thanks Petr,

I'm after T1 + T2 + T3 + ...

Which would be one number ... i.e. the result you originally said you
did not want.

and your solution is giving a list of n items
each containing sum(T[i]). I guess I should have been clearer in
stating
what I need.

Or even now you _could_ be clearer. Do you want successive partial
sums? That would yield to:

Reduce("+", listoftables, accumaulate=TRUE)





Cheers,
DAV     



-----Original Message-----
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org
] On
Behalf Of Petr Savicky
Sent: Monday, April 16, 2012 11:07 AM
To: r-help@r-project.org
Subject: Re: [R] Effeciently sum 3d table

On Mon, Apr 16, 2012 at 10:28:43AM -0400, David A Vavra wrote:
I have a large number of 3d tables that I wish to sum
Is there an efficient way to do this? Or perhaps a function I can
call?

I tried using do.call("sum",listoftables) but that returns a single
value.


So far, it seems only a loop will do the job.

Hi.

Use lapply(), for example

listoftables <- list(array(1:8, dim=c(2, 2, 2)), array(2:9,
dim=c(2, 2,
2)))
lapply(listoftables, sum)

[[1]]
[1] 36

[[2]]
[1] 44

Hope this helps.

Petr Savicky.

______________________________________________
R-help@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.

______________________________________________
R-help@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.

David Winsemius, MD
West Hartford, CT


David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to