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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.