BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Ruth
Fluorite | Level 6

Hi,

To explain what I want, please let me show the simple code:

proc sort data=work.city;

  by descending gdp;

run;

Then I want to create a variable in the data work.city, which indicates the group that the case belongs to based on its gdp level. Group 1 has the largest gdp, and group 10 has the lowest gdp. Each group has equal number of cases.

How can do it?

Cheers.

Ruth.

1 ACCEPTED SOLUTION

Accepted Solutions
art297
Opal | Level 21

Couldn't you just use proc rank .. the data doesn't even have to be sorted.  Just specify the number of groups you want. e.g.,

data city;

  input city gdp;

  cards;

1 10

2 9

3 8

4 7

5 6

6 5

7 4

8 3

9 2

10 12

11 13

12 14

;

proc rank data=city groups=4 out=want;

  var gdp;

  ranks gdprank;

run;

View solution in original post

1 REPLY 1
art297
Opal | Level 21

Couldn't you just use proc rank .. the data doesn't even have to be sorted.  Just specify the number of groups you want. e.g.,

data city;

  input city gdp;

  cards;

1 10

2 9

3 8

4 7

5 6

6 5

7 4

8 3

9 2

10 12

11 13

12 14

;

proc rank data=city groups=4 out=want;

  var gdp;

  ranks gdprank;

run;

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

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 1 reply
  • 903 views
  • 0 likes
  • 2 in conversation