Re: Sum elements in a list with conditions

*To*: mathgroup at smc.vnet.net*Subject*: [mg128440] Re: Sum elements in a list with conditions*From*: Ray Koopman <koopman at sfu.ca>*Date*: Fri, 19 Oct 2012 02:44:24 -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*References*: <k5o8g2$ic1$1@smc.vnet.net>

On Oct 17, 11:46 pm, Guillermo Sanchez <guillermo.sanc... at hotmail.com> wrote: > 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}] {#[[1,1]],Tr@#[[All,2]]}& /@ list2