BookmarkSubscribeRSS Feed
zoeshrugged
Calcite | Level 5

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:

TeamPoints EarnedPoints Given up
Lions2010
Ravens3021
Broncos305

Then we would know the Broncos had the highest margin. How do I write a formula for this?

Any assistance would be greatly appreciated!

2 REPLIES 2
Haikuo
Onyx | Level 15

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;

art297
Opal | Level 21

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;

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1059 views
  • 0 likes
  • 3 in conversation