Re: List Manipulation- Advanced beginner question
- To: mathgroup at smc.vnet.net
- Subject: [mg121491] Re: List Manipulation- Advanced beginner question
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sat, 17 Sep 2011 06:26:14 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
On 9/16/11 at 5:48 AM, nvanfalk at gmail.com (Nguyen Van Falk) wrote: >I am trying to add multiple lists together and am looking for some >guidance. My data is in the form of multiple time series, with dates >that overlap one another. I need to merge the lists, add all of the >values together for the dates that overlap and output a single list >that only has one entry for each date. >For example, if I have three values for September 15 (8,14,10), I >only want a single entry for September 15 in the final list with a >value of 32. The data is in standard date spec form: { {{Date 1}, >Value 1}, {{Date 2}, Value 2}, {{Date 3}, Value 3}, ....... {{Date >n}, Value n}, }. First generate some data in the form you describe: In[7]:= data = Join[{{9, 15, 2011}, #} & /@ {8, 14, 10}, {{8, 15, 2011}, #} & /@ RandomInteger[50, 4]] Out[7]= {{{9, 15, 2011}, 8}, {{9, 15, 2011}, 14}, {{9, 15, 2011}, 10}, {{8, 15, 2011}, 24}, {{8, 15, 2011}, 12}, {{8, 15, 2011}, 32}, {{8, 15, 2011}, 33}} then sum per date as follows: In[8]:= {#[[1, 1]], Total[#[[All, 2]]]} & /@ GatherBy[data, First] Out[8]= {{{9, 15, 2011}, 32}, {{8, 15, 2011}, 101}}