🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Calcite | Level 5

Splitting a data set into 10 equal deciles

I have a dataset (1.2 million records) and I am wanting to assign a score of 1 to 10 to each record depending on the position in a list. I'm sure this is quite simple to do but I am new to SAS and I can't find anything on the forums. I'm guessing I need to rank the dataset first but then I'm not sure where to go from there. Any help would be gratefully received.

1 ACCEPTED SOLUTION

Accepted Solutions
Ammonite | Level 13

Re: Splitting a data set into 10 equal deciles

Seems like you are trying to calculate lift based on a model. Try the following code that will split data into 10 groups based on descending values of Response_score variable.

proc rank data=have groups=10 descending out=ranked;
var Response_score;
ranks decile;
run;

4 REPLIES 4
Tourmaline | Level 20

Re: Splitting a data set into 10 equal deciles

Some sample input and desired output helps you describe your issue.

Especially describe the concept of a position in a list.

Data never sleeps
Calcite | Level 5

Re: Splitting a data set into 10 equal deciles

Thanks Linus. The file is a response file. Each line has a propensity score and I am trying to see the response rate by decile. For example:

Person_Key | Response Score | Responded

1 | 900 | 1

2 | 600 | 0

3 | 750 | 0...

I want to split the volume into 10 equal segments so I can see if I can refine the model to go deeper into marginal segments.

Does that help?

Ammonite | Level 13

Re: Splitting a data set into 10 equal deciles

Seems like you are trying to calculate lift based on a model. Try the following code that will split data into 10 groups based on descending values of Response_score variable.

proc rank data=have groups=10 descending out=ranked;
var Response_score;
ranks decile;
run;

Calcite | Level 5

Re: Splitting a data set into 10 equal deciles

That's correct. Thank you very much stat_sas.

Discussion stats
• 4 replies
• 68495 views
• 2 likes
• 3 in conversation