Re: Counting Runs
- To: mathgroup at smc.vnet.net
- Subject: [mg51959] Re: Counting Runs
- From: Peter Pein <petsie at arcor.de>
- Date: Fri, 5 Nov 2004 02:19:41 -0500 (EST)
- References: <cmclmu$i99$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Gregory Lypny wrote: > Looking for an elegant way to count runs to numbers in a series. > Suppose I have a list of ones and negative ones such as > v={1,1,1,-1,1,1,1,1,1,-1,-1,-1,-1,1}. > I'd like to create a function that counts the number of runs of 1s and > -1s, which in this case is 3 and 2. > > Greg > Simply split and count: countruns[data_, items_] := Module[{splitlist = Split[data]}, Count[splitlist, {x__} /; x == #] & /@ items] v = {1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, -1, -1, 1}; In[3]:= countruns[v, {1, -1}] Out[3]= {3, 2}