MathGroup Archive 2012

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

Search the Archive

Re: Sum elements in a list with conditions


After having used GatherBy, for each of the resulting list elements you 
want to have the first element of the first column and the sum of the 
second column:

In[10]:= list1 = {{1,a},{2,b},{1,c},{2,d},{2,e},{3,f}};
In[11]:= {#[[1,1]], Total[#[[All,2]]]}& /@ GatherBy[list1, First]
Out[11]= {{1,a+c},{2,b+d+e},{3,f}}

Fred Simons
Eindhoven University of Technology

Op 18-10-2012 8:36, Guillermo Sanchez schreef:
> 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}]
>
>
>




  • Prev by Date: Re: Front end - Error when saving file
  • 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