Re: any better to apply a function to second column?

• To: mathgroup at christensen.cybernetics.net
• Subject: [mg516] Re: [mg507] any better to apply a function to second column?
• From: Richard Mercer <richard at seuss.math.wright.edu>
• Date: Tue, 07 Mar 1995 09:21:47 -0500

```>  Hi,
>  	I would like to know if there is a better way to
>  do the following.
>

>  	Suppose I have list of numbers in pairs:
>

>  a = {{x1,y1},{x2,y2},...,{xn,yn}}
>

>  I would like to apply to the sequence {y1,y2,...,yn} the
>  function f so that a new sequence
>

>  b = {{x1,f[y1]},{x2,f[y2]},...,{xn,f[yn]}}
>

>  is generated.
>

>  My current solution is
>

>  b = Transpose[{First /@ a,f[Last /@ a]}]
>

>  However, I suspect there should be a much more simpler
>  way than this.
>

>  Does any body know a more straight forward way to do
>  this?
>

>  Also, what if I have a matrix of 3 or more columns and
>  I would apply f to only the second column, say. What is
>  a better way in this case?
>

>  Thanks for any info
>

>  Richard

This is a common and important situation.
The "best" solution? Here are two candidates.

Apply[{#1,f[#2]}&,a,{1}]

a /. {x_,y_}:>{x,f[y]}

I tend to prefer the first, because the second has the potential to make
unwanted changes at deeper levels (should they exist). This possibility could
be avoided with

Replace[#,{x_,y_}:>{x,f[y]}]& /@ a

Richard Mercer

```

• Prev by Date: Re: auto notebook running
• Next by Date: Graphics on a NeXT into MSWord on a PC?
• Previous by thread: Re: any better to apply a function to second column?
• Next by thread: Re: any better to apply a function to second column?