Re: Delete problem
- To: mathgroup at smc.vnet.net
- Subject: [mg52906] Re: [mg52871] Delete problem
- From: DrBob <drbob at bigfoot.com>
- Date: Thu, 16 Dec 2004 03:41:01 -0500 (EST)
- References: <200412150926.EAA10676@smc.vnet.net>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
"ccheck" is given a value before the While loop starts and never updated to the new "index". Since the test is true for index==1, all the sublists are deleted. You can change to this:
original = {{{AEST -
01 - C - 10, 1, 1, 1, 2, 31, 1, C, -2.14}, {AEST - 01 - C - 10, 1, 1,
1, 4, 31, 1, C, -1.1}, {AEST - 01 -
C - 10, 2, 2, 1, 2, 12, 2, C, 1.79}}, {{AEST - 07 - E - 04, 2, 1,
2, 1, 10, 2, C, 1.334}, {AEST -
07 - E - 04, 2, 1, 3, 2, 1, 4, C, 1.997}, {AEST - 07 - E - 04, 3, 2,
1, 1, 2, 1, C, -1.17}, {AEST - 07 -
E - 04, 3, 4, 1, 1, 21, 2, C, 2.15}}};
masterlist = original;
index = 1;
While[index â?¤ Length[masterlist],
ccheck = Sign[masterlist[[index, All, 9]]];
If[Count[ccheck, _?Positive] > 0 &&
Count[ccheck, _?Negative] > 0 && Count[ccheck, _Integer] == 3,
masterlist = Delete[masterlist, index], index++]];
masterlist
or, a bit nicer:
selector[data : {__List}] := Select[data, (Length@# â? 3 ||
Count[#, {__, _?Negative}] == 0 || Count[#, {__, _?Positive}] == 0) &]
masterlist = selector@original
Bobby
On Wed, 15 Dec 2004 04:26:54 -0500 (EST), Todd Allen <genesplicer28 at yahoo.com> wrote:
> Hi everyone,
> I have situation where I am trying to quality
> control check a "list of lists" for certain values
> that should be deleted from the list if they are
> found. I have wrote a few lines of code that I
> believe should work, but rather than simply deleting a
> part of the list, mathematica seems to delete the
> entire list. Below is the situation with a small test
> dataset:
>masterlist={{{AEST-01-C-10,1,1,1,2,31,1,C,-2.14},{AEST-01-C-10,1,1,1,4,31,1,
>C,-1.1},{AEST-01-C-10,2,2,1,2,12,2,C,1.79}},{{AEST-07-E-04,2,1,2,1,10,2,
>C,1.334},{AEST-07-E-04,2,1,3,2,1,4,C,1.997},{AEST-07-E-04,3,2,1,1,2,1,
> C,-1.17},{AEST-07-E-04,3,4,1,1,21,2,C,2.15}}};
>index=1;ccheck=Sign[masterlist[[index,All,9]]];While[
> index<=Length[masterlist],
> If[Count[ccheck,_?Positive]>0 &&
> Count[ccheck,_?Negative]>0 &&
>Count[ccheck,_Integer]==3,masterlist=Delete[masterlist,index],index++]];
>I am trying to delete lists that have both positive
> and negative values in the ninth position of common
> elements and also have only 3 members of that group.
> For example, I would expect mathematica to delete the
> first group of masterlist above, because it has three
> subgroups of AEST-01-C-10 and it has the values of
> -2.14, -1.1and 1.79 in each of the three AEST-01-C-10
> elements. Sorry if I have badgered the proper use of
> list/grouping terminology, but hopefully my general
> idea is clear.
>Thank you for any thoughts you might have.
>Best regards,
> Todd
>
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Mail - Helps protect you from nasty viruses.
> http://promotions.yahoo.com/new_mail
>
>
>
>
--
DrBob at bigfoot.com
www.eclecticdreams.net
- References:
- Delete problem
- From: Todd Allen <genesplicer28@yahoo.com>
- Delete problem