MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

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}}



  • Prev by Date: Filling between lines in ListPlot not working
  • Next by Date: Re: Sum elements in a list with conditions
  • Previous by thread: Re: Sum elements in a list with conditions
  • Next by thread: Re: Sum elements in a list with conditions