Hello! Is it posible to apply /cumsum()/ along the 3rd dimension of 3D array? Something like matrlab function - /cumsum (*A*,dim)/ which returns the cumulative sum of the elements along the dimension of *A* specified by scalar dim. Thanks in advance ?eljka -- View this message in context: http://r.789695.n4.nabble.com/cumsum-in-3d-arrays-tp4110470p4110470.html Sent from the R help mailing list archive at Nabble.com.
cumsum in 3d arrays
8 messages · Ben Bolker, David Winsemius, Dennis Murphy +2 more
zloncaric <zloncaric <at> biologija.unios.hr> writes:
Is it posible to apply /cumsum()/ along the 3rd dimension of 3D array? Something like matrlab function - /cumsum (*A*,dim)/ which returns the cumulative sum of the elements along the dimension of *A* specified by scalar dim.
Check out the combination of apply and cumsum.
On Nov 26, 2011, at 9:32 AM, zloncaric wrote:
Hello! Is it posible to apply /cumsum()/ along the 3rd dimension of 3D array? Something like matrlab function - /cumsum (*A*,dim)/ which returns the cumulative sum of the elements along the dimension of *A* specified by scalar dim.
`apply` lets you chose which dimension gets selected. Perhaps: apply(mat, 3, cumsum) (This is pretty basic stuff so you should probably be reading or at least skimming somewhat more thoroughly than you have so far the Introduction to R document and there is also the R for Matlab document by Bob Muenchen ... and a compendium of equivalencies by Hiebeler at: www.math.umaine.edu/~hiebeler/comp/matlabR.html )
David Winsemius, MD West Hartford, CT
On Nov 26, 2011, at 11:24 AM, David Winsemius wrote:
On Nov 26, 2011, at 9:32 AM, zloncaric wrote:
Hello! Is it posible to apply /cumsum()/ along the 3rd dimension of 3D array? Something like matrlab function - /cumsum (*A*,dim)/ which returns the cumulative sum of the elements along the dimension of *A* specified by scalar dim.
`apply` lets you chose which dimension gets selected. Perhaps: apply(mat, 3, cumsum)
Or perhaps apply(mat, 1:2, cumsum)
(This is pretty basic stuff so you should probably be reading or at least skimming somewhat more thoroughly than you have so far the Introduction to R document and there is also the R for Matlab document by Bob Muenchen ... and a compendium of equivalencies by Hiebeler at: www.math.umaine.edu/~hiebeler/comp/matlabR.html ) --
David Winsemius, MD West Hartford, CT
1 day later
Thank you for your time and help. I'm quite aware that this problem seems as basic stuff, and of course I've read several R and matlab manuals, and also consulted the D. Hiebeler, Matlab / R Reference and several others, but none of the suggested solutions seems to give me the right result. I've tried the combination of apply and cumsum but the result is wrong. -- View this message in context: http://r.789695.n4.nabble.com/cumsum-in-3d-arrays-tp4110470p4114510.html Sent from the R help mailing list archive at Nabble.com.
Hi: Could you supply a small reproducible example with the output that you expect? For example, what output would you expect from the following: a <- array(1:24, c(2, 2, 3)) ? Dennis On Mon, Nov 28, 2011 at 12:32 AM, zloncaric
<zloncaric at biologija.unios.hr> wrote:
Thank you for your time and help. I'm quite aware that this problem seems as basic stuff, and of course I've read several R and matlab manuals, and also consulted the D. Hiebeler, Matlab / R Reference and several others, but none of the suggested solutions seems to give me the right result. I've tried the combination of apply and cumsum but the result is wrong. -- View this message in context: http://r.789695.n4.nabble.com/cumsum-in-3d-arrays-tp4110470p4114510.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.
Does the following do what you want? You often need to use aperm() to permute the dimensions of apply()'s output.
a <- array(2^(0:23), dim=c(2,3,4)) aperm(apply(a, 1:2, cumsum), c(2,3,1))
, , 1
[,1] [,2] [,3]
[1,] 1 4 16
[2,] 2 8 32
, , 2
[,1] [,2] [,3]
[1,] 65 260 1040
[2,] 130 520 2080
, , 3
[,1] [,2] [,3]
[1,] 4161 16644 66576
[2,] 8322 33288 133152
, , 4
[,1] [,2] [,3]
[1,] 266305 1065220 4260880
[2,] 532610 2130440 8521760
Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com
-----Original Message----- From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of zloncaric Sent: Saturday, November 26, 2011 6:32 AM To: r-help at r-project.org Subject: [R] cumsum in 3d arrays Hello! Is it posible to apply /cumsum()/ along the 3rd dimension of 3D array? Something like matrlab function - /cumsum (*A*,dim)/ which returns the cumulative sum of the elements along the dimension of *A* specified by scalar dim. Thanks in advance ?eljka -- View this message in context: http://r.789695.n4.nabble.com/cumsum-in-3d-arrays-tp4110470p4110470.html Sent from the R help mailing list archive at Nabble.com.
______________________________________________ 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.
Yes exactly what I want! Thank you very much for your help. -- View this message in context: http://r.789695.n4.nabble.com/cumsum-in-3d-arrays-tp4110470p4118432.html Sent from the R help mailing list archive at Nabble.com.