Re: Re; Reordering lists?!
- To: mathgroup at smc.vnet.net
- Subject: [mg4545] Re: Re; Reordering lists?!
- From: Harald Berndt <haraldb at nature.berkeley.edu>
- Date: Wed, 7 Aug 1996 04:17:51 -0400
- Organization: University of California Forest Products Lab
- Sender: owner-wri-mathgroup at wolfram.com
Andre and Alain wrote:
> <The code that replaces them>
>
> Do[If[gsub[[n]]==1,gsub[[n]]=4]||
> If[gsub[[n]]==2,gsub[[n]]=3]||
> If[gsub[[n]]==3,gsub[[n]]=2]||
> If[gsub[[n]]==4,gsub[[n]]=1],
> {n,1,Length[gsub]}]
>
> <It doesn't work properly?!>
>
No, of course that wouldn't work properly. When your code gets to the
first instance of 2, it replaces it with 3, which is then replaced by
2 by the next statement (so, no change at all). On the other hand, all
original 3's will end up as 2's. Ditto with the 4's and 1's: they'll
all be 1, by the time your logic statement is through. You'll need
"placeholders."
Besides, the Do[] and long logic statements are not very efficient use
of Mma. The Mma way of doing this would be with pattern matching and
replacement rules:
In[12]:=
chngdData =
((((((data//.1->x)//.4->1)//.3->y)//.2->3)//.y->2)//.x->4)
Out[12]=
{3, 4, 4, 4, 4, 3, 4, 3, 4, 4, 4, 3, 3, 4, 4, 2, 4, 4, 3, 4, 3, 4, 3,
4, 4, 4, 4, 3, 4, 3, 4, 2, 4, 3, 3, 4, 3, 4, 3, 2, 3, 1, 4, 4, 4, 4,
3, 4, 4, 4, 4, 3, 3, 3, 4, 3, 4, 3, 2, 3, 3, 3, 4, 3, 4, 3, 3, 3, 3,
3, 3, 4, 4, 4, 4, 4, 4, 3, 3, 3, 4}
In[11]:=
Frequencies[chngdData]
Out[11]=
{{1, 1}, {4, 2}, {34, 3}, {42, 4}}
--
_______________________________________________________________
Harald Berndt University of California
Research Specialist Forest Products Laboratory
Phone: 510-215-4224 FAX:510-215-4299
_______________________________________________________________
==== [MESSAGE SEPARATOR] ====