Re: normalize a table
- To: mathgroup at smc.vnet.net
- Subject: [mg72795] Re: normalize a table
- From: "." <ggroup at sarj.ca>
- Date: Sat, 20 Jan 2007 02:56:34 -0500 (EST)
- References: <eopmgk$rr4$1@smc.vnet.net>
Hi Ruth, There are many ways of doing it. Here are three potential options: firsttable /. {x_?NumericQ, y_?NumericQ} :> {x/Max[firsttable[[All,1]]], y} #/{Max[firsttable[[All,1]]], 1} & /@ firsttable Transpose[{firsttable[[All, 1]]/Max[firsttable[[All, 1]]], firsttable[[All, 2]]}] Good luck! Ruth wrote: > Hi, > > I want to do something really simple, which is take a table made of > pairs and normalize the first number in each pair by dividing by the > largest. > > For instance, I want to transform this list > > {{1,0.2},{2,0.3},{3,0.4},{4,0.5}} > > into this one > > {{1/4, 0.2}, {1/2, 0.3}, {3/4, 0.4}, {1, 0.5}} > > The way i did it is through the chain of commands > > firsttable={{1,0.2},{2,0.3},{3,0.4},{4,0.5}}; > > > top=Max[Table[firsttable[[i,1]],{i,1,Length[firsttable]}]]; > > > mytable=Do[newtable=ReplacePart[newtable,newtable[[i,1]]/top,{i, > 1}],{i,1,Length[firsttable]}] > > There must be a more elegant way to do it, but @&# and commands like > those are still hard to handle for me, and I could not work it out > > Thanks in advance, > > Ruth