need assistance with arrays

Reply
New Contributor
Posts: 2

need assistance with arrays

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!

Respected Advisor
Posts: 3,124

Re: need assistance with arrays

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;

Esteemed Advisor
Posts: 7,293

Re: need assistance with arrays

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;

Ask a Question
Discussion stats
  • 2 replies
  • 171 views
  • 0 likes
  • 3 in conversation