Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1995
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1995

[Date Index] [Thread Index] [Author Index]

Search the Archive

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

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg529] Re: [mg507] any better to apply a function to second column?
  • From: Xah Y Lee <xyl10060 at fhda.edu>
  • Date: Thu, 9 Mar 1995 14:17:02 -0800 (PST)

Problem:
 How to make a list {{a,1},{b,2},{c,3},{d,4}}
 to become
  {{ a, f[1]}, { b, f[2]}, { c, f[3]}, { d, f[4]}}...
  and the more generalized problem is how to apply a
 function to nth column.


Here is a summary of solutions.
Roughly in order of speed.

Clear[mylist]

mylist = Table[ {i,i x }, {i,1,2000}];

(* 5.7 *)
mylist2 = Transpose@mylist;
Transpose[{ mylist2[[1]], f/@ mylist2[[2]] }];

(* 6.6*)
Apply[{#1,f[#2]}&, mylist,{1}];

(* 6.6 *)
mylist /. {x_,y_}:>{x,f[y]};

(* 8.0 *)
Map[MapAt[f, #, {2}]&, mylist];

(* 8.5 *)
 Apply[{#1, f[#2], ##3}&, mylist, {1}];

(* 12.2 *)
{#[[1]], f[#[[2]]]}& /@ mylist;

(* 15.3 *)
Replace[#,{x_,y_}:>{x,f[y]}]& /@ mylist;

(* 39.6 *)
MapAt[f,mylist, Table[ {i,2}, {i,Length[mylist]}]];

%%%%%%%==%%%%%%==%%%%%==%%%%==%%%==%%==%

 Xah Lee      xyl10060 at tiptoe.fhda.edu
 Mountain View, CA


  • Prev by Date: Extracting terms
  • Next by Date: any better to apply a function...
  • Previous by thread: Re: any better to apply a function to second column?
  • Next by thread: SOUND!