Re: List of multiple elements
- To: mathgroup at smc.vnet.net
- Subject: [mg112048] Re: List of multiple elements
- From: Adriano Pascoletti <adriano.pascoletti at uniud.it>
- Date: Fri, 27 Aug 2010 04:06:46 -0400 (EDT)
Something like this? In[1]:= a = {1, 1, 2, 1, 2}; In[2]:= Tally[a] Out[2]= {{1, 3}, {2, 2}} In[3]:= Tally[a] /. {i_, n_ /; n > 1} :> Sequence @@ ConstantArray[i, n - 1] Out[3]= {1, 1, 2} Adriano Pascoletti 2010/8/26 Dr. Wolfgang Hintze <weh at snafu.de> > Given the list > > a={1,1,2,1,2}; > > we can reduce multiple instances of elements using > > b=Union[a] > {1,2} > > The question is now how to compute the list of multiple elements. > In our example this would be m={1,1,2}. > > A possible solution is > > m[x_]:= Flatten[Take[#, {1, Length[#] - 1}] & /@ Select[Split[x], > Length[#] > 1 &]] > > m[a] > {1,1,2} > > I'm sure there is a much more elegant solution. Can you suggest one? > > Remark > > m[a] can be viewed as a kind of difference: m[a] = a "MINUS" Union[a] > Inverting gives the "SUM": a = m[a] "PLUS" Union[a] = > Join[m[a],Union[a]] > > Regards, > Wolfgang > > >