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.
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;
Some sample input and desired output helps you describe your issue.
Especially describe the concept of a position in a list.
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?
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;
That's correct. Thank you very much stat_sas.
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.