Let's say I have some data:
data={{a1,b1},{a2,b2},{a3,b3},{a4,b4},...}
and I would like to apply the function:
f1[x_]=x*5
to every a_i
element.
How can I do this?
The best solution I've found so far is to do:
MapAt[f1, data, {{1, 1}, {2, 1}, {3, 1}, {4, 1}...}]
Up to the length of my data, but I'm sure there's a more efficient solution for this.
MapAt[f1, data, {All, 1}]
? $\endgroup$ – J. M.'s ennui♦ May 24 '16 at 16:42Map[Apply[{f[#1], ##2} &], data]
, if you insist... but J.M.'s approach is best. $\endgroup$ – Emilio Pisanty May 24 '16 at 16:44Transpose@{f1[#1], #2} & @@ Transpose@data
If yourf1
isListable
(and yours is ) that can give you significant speed increase. $\endgroup$ – BlacKow May 24 '16 at 16:50{f1@#, #2} & @@@ data
$\endgroup$ – kglr May 24 '16 at 23:44#1
and#
are equivalent. $\endgroup$ – LLlAMnYP May 25 '16 at 7:16