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;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.