Re: Apply or Map on some parts of lists - help
- To: mathgroup at smc.vnet.net
- Subject: [mg115594] Re: Apply or Map on some parts of lists - help
- From: Ray Koopman <koopman at sfu.ca>
- Date: Sun, 16 Jan 2011 05:50:44 -0500 (EST)
- References: <igrqdn$qot$1@smc.vnet.net>
On Jan 15, 1:46 am, dragec <culino... at gmail.com> wrote: > Dear, > I have > > List like: > > { {{TITLE1},{{x11,y11},{x12,y12},{x13,y13},{x14,y14}}}, > {{TITLE1},{{x21,y21},{x22,y22},{x23,y23},{x24,y24}}}, > {{TITLE1},{{x31,y31},{x32,y32},{x33,y33},{x34,y34}}} > > } > > So, I would like to apply some function (eg. #/3.6&) to all y's. > Is there any elegant way to do this. > I Know that you know how to do this. :) > > THX This changes every 'y' to 'f[y]', but it's messy. I can't shake the feeling that there's a simpler solution. data = {{{TITLE1},{{x11,y11},{x12,y12},{x13,y13},{x14,y14}}}, {{TITLE2},{{x21,y21},{x22,y22},{x23,y23},{x24,y24}}}, {{TITLE3},{{x31,y31},{x32,y32},{x33,y33},{x34,y34}}}} Transpose@MapAt[Map[{#[[1]],f@#[[2]]}&,#,{2}]&,Transpose@data,2] {{{TITLE1},{{x11,f[y11]},{x12,f[y12]},{x13,f[y13]},{x14,f[y14]}}}, {{TITLE2},{{x21,f[y21]},{x22,f[y22]},{x23,f[y23]},{x24,f[y24]}}}, {{TITLE3},{{x31,f[y31]},{x32,f[y32]},{x33,f[y33]},{x34,f[y34]}}}}