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 save with the early bird rate—just $795!
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.