Re: List Manipulation: Conditionally changing y value

*To*: mathgroup at smc.vnet.net*Subject*: [mg109015] Re: List Manipulation: Conditionally changing y value*From*: Bob Hanlon <hanlonr at cox.net>*Date*: Sat, 10 Apr 2010 06:54:24 -0400 (EDT)

n=5; x=RandomReal[{0,1}, n]; y=RandomReal[{0,1}, n]; pts=Thread[{x,y}]; {a,b}={.25,.75}; filtered1=If[a<#[[1]]<b,{1,0}#,#]&/@pts or filtered2={1,If[a<#[[1]]<b,0,1]}#&/@pts or filtered3={1,1-Boole[a<#[[1]]<b]}#&/@pts filtered1==filtered2==filtered3 True Bob Hanlon ---- Charles Koehler <cjkphd at wi.rr.com> wrote: ============= Hello, If possible I could use a little help on this. I have a list of x and y data and based on the value of x I would like to manipulate the value y. I joined the data using: pts=MapThread[{##1}&,{x,y}] I assumed that by testing the x value using #[[1]], I could change the value of y using #[[2]] as shown below. If no manipulation was required based on the value of x, I would keep that point unchanged, but I'm definitely missing something. filtered=If[a<#[[1]]&<b,#[[2]]&=0],{#[[1]],#[[2]]}&,pts] a and b are the range of x values Any insight would be much appreciated. Thanks, Chuck Koehler