Re: Sum elements in a list with conditions
- To: mathgroup at smc.vnet.net
- Subject: [mg128427] Re: Sum elements in a list with conditions
- From: Daniel <dosadchy at its.jnj.com>
- Date: Fri, 19 Oct 2012 02:40:03 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
> I have a list of sublist of pairs. I wish sum the > second elements of > the sublists when the first elements are equals > Example: > Int[]:={{1, a}, {2, b}, {1, c}, {2, d}, {2, e}, {3, > f}} > I hope > Out[]:= {{1, a + c}, {2, b + c + e}, {3, f}} > > I can do it as is it is shown below but could any > body find and > easier solution. > > > list1 = {{1, a}, {2, b}, {1, c}, {2, d}, {2, e}, {3, > f}}; > list2 = GatherBy[list1, First]; > {l1, l2} = Transpose[Plus @@@ GatherBy[list, First]]; > Transpose[{l1/Length /@ list2 , l2}] > In[1]:= list1 = {{1, a}, {2, b}, {1, c}, {2, d}, {2, e}, {3, f}}; In[4]:= list2 = GatherBy[list1, First]; In[3]:= {#[[1, 1]], #[[All, 2]] // Total} & /@ list2 Out[3]= {{1, a + c}, {2, b + d + e}, {3, f}}