# Map rankings to particular values

Posted 10 years ago
1980 Views
|
5 Replies
|
4 Total Likes
|
 Hello,I am new to the community.  I am a financial hobbyist(used to be professional) that likes to get into creating models and testing ideas.I have been working hard  on learning Mathematica.I am trying to see if I can accomplish the following:I have a list of rankings a={3,2,1,4}I want to map the rankings to particular values for example, 1-> .05, 2-> .1 etc.I spent a bunch of time learning about Association and Keys only to find out that they are in the new upcoming version. So while promising, they are of no use to me now.Is there a way in the current version to get this remapping done?Thanks in advance,Mario
5 Replies
Sort By:
Posted 10 years ago
 Formatting suggestions are in    http://community.wolfram.com/groups/-/m/t/151347(Well, they are not exactly suggestions.)
Posted 10 years ago
 r[x_] := Which[  x == 1, .02,  x == 2, .03,  x == 3, .05,  x == 4, .1,   x == 5, .15,  x == 6, .25];weights = Table[r /@ size[], {i, 1, days}];Using the little <> near the right end of the second row of "buttons" when posting will sometimes help you format code, sometimes not.If you are absolutely sure your x will only have positive adjacent integer values then something like this might work.r[x_]:=(.02,.03,.05,.1,.15,.25}[[x]];weights=Table[r/@size[],{i,1,days}];but that is dangerous and questionable practice
Posted 10 years ago
 Got it.  Thanks!Much better than the nested If's.Mario
Posted 10 years ago
 Thanks for the reply.  I just made it do what I wanted but it is not a very elegant solution.  Hopefully, it will be clear what I want from my solution.r[x_]:=If[x==1,.02,If[x==2,.03,If[x==3,.05,If[x==4,.1,If[x==5,.15,If[x==6,.25,If[x==7]]]]]];weights=Table[r /@ size[[i]],{i,1,days}];[/i]so now my "weights" have transformed from integers "x" (the input to the function r) into a list with numbers corresponding to values of x.  So when x is 2, my function returns 0.03 Ugh, the formatting is terrible.  I don't know how to copy the way it looks in notebook (as I have seen others).  Sorry.
Posted 10 years ago
 You have one input called rankings which is a list of integers, that is clear. It isn't clear what form your second input is in, it isn't clear how this form relates to ranking, it isn't clear what form you want to put this into and it isn't clear what you want to do with the result. If you could provide a blindingly clear complete example with just enough supporting explanation that someone who doesn't know anything about what you know would be able to produce exactly what you are looking for on the first try then that would be really helpful.