Hi, I have two datasets and I have the points earned and the points given up for a list of sports teams. I want to find out the highest margin between points earned-points given up.
For example, if it was like this:
Team | Points Earned | Points Given up |
---|---|---|
Lions | 20 | 10 |
Ravens | 30 | 21 |
Broncos | 30 | 5 |
Then we would know the Broncos had the highest margin. How do I write a formula for this?
Any assistance would be greatly appreciated!
There will be many solutions, here is one of them:
data have;
input team:$8. points_earned points_give;
cards;
Lions 20 10
Ravens 30 21
Broncos 30 5
;
proc sql;
select * from have having abs(points_earned-points_give)=max(abs(points_earned-points_give));
quit;
I would modify 's formula, as given the following scenario, I doubt that you would want the Rams to come out on top:
data have;
input team:$8. points_earned points_give;
cards;
Lions 20 10
Ravens 30 21
Broncos 30 5
Rams 5 31
;
proc sql;
select *
from have
having points_earned-points_give=max(points_earned-points_give)
;
quit;
Further, you may want to consider comparing deltas rather than differences. If so,:
proc sql;
select * ,points_earned/points_give-1
from have
having points_earned/points_give-1=max(points_earned/points_give-1)
;
quit;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.