Re: How can I totalize by month, by year?
- To: mathgroup at smc.vnet.net
- Subject: [mg111899] Re: How can I totalize by month, by year?
- From: David Carraher <david_carraher at terc.edu>
- Date: Wed, 18 Aug 2010 07:04:52 -0400 (EDT)
Hi Leandro, Here's one approach. Other folks will find other ways, I'm sure.... Below are your data (minus the outer pair of curly braces). In[1]:= data = { {{2010, 8, 3, 0, 0, 0.}, 65.}, {{2010, 8, 3, 0, 0, 0.}, -72.}, {{2010, 8, 3, 0, 0, 0.}, 45.}, {{2010, 8, 2, 0, 0, 0.}, 67.}, {{2010, 8, 2, 0, 0, 0.}, 83.}, {{2010, 8, 2, 0, 0, 0.}, -42.}, {{2010, 7, 30, 0, 0, 0.}, -32.}, {{2010, 7, 30, 0, 0, 0.}, 48.}, {{2010, 7, 30, 0, 0, 0.}, 12.}, {{2010, 7, 30, 0, 0, 0.}, 34.}, {{2010, 7, 29, 0, 0, 0.}, -52.}, {{2010, 7, 29, 0, 0, 0.}, 78.}, {{2010, 7, 29, 0, 0, 0.}, -26.}, {{2010, 7, 28, 0, 0, 0.}, 45.}, {{2010, 7, 28, 0, 0, 0.}, -23.}, {{2010, 7, 28, 0, 0, 0.}, -32.}, {{2010, 7, 28, 0, 0, 0.}, 74.}, {{2010, 7, 27, 0, 0, 0.}, 53.}, {{2010, 7, 27, 0, 0, 0.}, 58.}, {{2010, 7, 27, 0, 0, 0.}, 25.}}; (* Here's one approach GatherBy gathers the transactions from like dates. Transpose puts the amounts for each data into lists. Plus sums the list of amounts *) In[2]:= Transpose /@ GatherBy[data, First] /. {dates_, sum_List} :> { First[dates], Plus @@ sum} Out[2]= { {{2010, 8, 3, 0, 0, 0.}, 38.}, {{2010, 8, 2, 0, 0, 0.}, 108.}, {{2010, 7, 30, 0, 0, 0.}, 62.}, {{2010, 7, 29, 0, 0, 0.}, 0.}, {{2010, 7, 28, 0, 0, 0.}, 64.}, {{2010, 7, 27, 0, 0, 0.}, 136.}} From: "Leandro Tenfen" <leandrotenfen at hotmail.com> To: mathgroup at smc.vnet.net Date: 08/17/2010 07:52 AM Subject: [mg111899] [mg111895] How can I totalize by month, by year? Hi, I'm new with Mathematica, I need some help to start it. I've got a date series like a cashflow, how can I totalize at each date change? And how can I totalize by month, by year, etc? For example: In[]= {{{{2010, 8, 3, 0, 0, 0.}, 65.}, {{2010, 8, 3, 0, 0, 0.}, -72.}, {{2010, 8, 3, 0, 0, 0.}, 45.}, {{2010, 8, 2, 0, 0, 0.}, 67.}, {{2010, 8, 2, 0, 0, 0.}, 83.}, {{2010, 8, 2, 0, 0, 0.}, -42.}, {{2010, 7, 30, 0, 0, 0.}, -32.}, {{2010, 7, 30, 0, 0, 0.}, 48.}, {{2010, 7, 30, 0, 0, 0.}, 12.}, {{2010, 7, 30, 0, 0, 0.}, 34.}, {{2010, 7, 29, 0, 0, 0.}, -52.}, {{2010, 7, 29, 0, 0, 0.}, 78.}, {{2010, 7, 29, 0, 0, 0.}, -26.}, {{2010, 7, 28, 0, 0, 0.}, 45.}, {{2010, 7, 28, 0, 0, 0.}, -23.}, {{2010, 7, 28, 0, 0, 0.}, -32.}, {{2010, 7, 28, 0, 0, 0.}, 74.}, {{2010, 7, 27, 0, 0, 0.}, 53.}, {{2010, 7, 27, 0, 0, 0.}, 58.}, {{2010, 7, 27, 0, 0, 0.}, 25.}}} Out[]= {{{{2010, 8, 3, 0, 0, 0.}, 38.}, {{2010, 8, 2, 0, 0, 0.}, 108.}, {{2010, 7, 30, 0, 0, 0.}, 28.}, {{2010, 7, 29, 0, 0, 0.}, -10.}, {{2010, 7, 28, 0, 0, 0.}, 64.}, {{2010, 7, 2, 0, 0, 0.}, 136.}}} Thanks Leandro Tenfen