How to find the best values from 2 column

PLAYER NAME RUNS SCORED WICKET TAKEN
|K L Rahul |7948 |0|
|Cheteshwar Pujara |7246 |0|
|Murali Vijay |4490 |2|
|Rishabh Pant |4123 |0|
|Shubman Gill |3807 |0|
|Dinesh Karthik |3463 |0|
|Ravindra Jadeja |2756 |220|
|Hardik Pandya |1769 |84|
|Ambati Rayudu |1736 |3|
|Parthiv Patel |1706 |0|
|Kedar Jadhav |1511 |27|
|Bhuvneswar Kumar |1171 |294|
|Ravichandran Ashwin |707 |156|
|Umesh Yadav |561 |288|
|Kuldeep Yadav |338 |264|
|Vijay Shankar |324 |9|
|Yuzvendra Chahal |83 |217|
|K Khaleel Ahmed |10 |28|
|Siddarth Kaul |1 |4|

I want to find the top 3 players who are ALL ROUNDERS - BEST in runs scorer and wicket taker.

Hi @CAMahi

Something which you could do is to calculate the total number of points first by adding columns 2 and 3 and then use a Top K Row Filter for the first 3.

2 Likes

Also check out the Rank and Desirability nodes!

4 Likes

Sir, Top k Rank Filter will give us only one column ranking.
I want both column ranking at same time. which gives best outcomes.
In your suggestion-Second column will not be part in desirable output.

@CAMahi
This could be more of a mathematical solution, e.g. like this: Normalize the columns score and wicket, multiply these values. The highest value is the total top.

br
sabsab

3 Likes

Hi @CAMahi , I certainly think you will need to provide a definition of “best”. I would at least imagine you’ll need some kind of weighting to the numbers, and perhaps some kind of “entry criteria” before somebody can be considered an “all rounder” at all?

Just taking two as an example, which of these would you conclude is the better all rounder and why?

Player Runs Wickets
Hardik Pandya 1769 84
Ravichandran Ashwin 707 156

or (maybe a better example)…

Player Runs Wickets
Ravichandran Ashwin 707 156
Umesh Yadav 561 288
3 Likes

Hello @CAMahi
I guess that as @sabsab suggested, it is a mathematical challenge. You may want also to extend some explanations and definitions as @takbb said.

From my point of view what you have in this challenge is a combinatorial problem. It isn’t a KNIME beginner’s problem; and you would rather achieve in an easier way with some coding support.

You can convert all the sorted values from the two columns into a tuple list; then you will need to find all 2-tuple combinations with repetition… an inner join will return you the the sorted rank results.

I hope this helps.

BR

P.S. Rank node with grouping attributes would work OK for a simple approach

1 Like

Best mean to say.
A player should be good at both. Not only he should be batsman or bowler.
As Rank nodes in decending order gives the result only for either batsman or either bowler.

As I found one solution.
And yes I probably thinking that it requires mathematical solution. For e.g.

We can give percentage to runs and wicket column.
Runs / total runs 100
And for wicket/Total wicket
100
Nest step
We can add this percentage of wicket and runs.
Next we will apply node in decending order.
This will give you statistically best player.
Choose top 3.

And I Really appreciate your effort to look into this matter and guide me.

Thank You :pray: :blush:

Here I tried to solve this.
You can check on below link.

https://hub.knime.com/-/spaces/-/~MWFcXLIJ3mnaCNOl/current-state/

2 Likes

Hi CAMahi!
Without getting in deep: What about the good old average: wickets per game, runs per game, etc.? Rankings could then be derived from this, which could be used for overall scoring. Perhaps a weighting would also have to be incorporated.

1 Like

Hello @CAMahi ,

In the above data, need to add one more column to indicate the number of matches played by each player.

Afterward, we can calculate the top 3 all-rounders