Hello everyone,
I have a table sorted by alphabetical order who looks like this :
felony |
drugs consumer |
drugs seller |
drugs trafficker |
murder in the first degree |
murder in the second degree |
sex offender |
sex worker |
And what I'd like is to create a variable attributing a rank for each felony starting with the same word. Something like this :
felony | rank |
drugs consumer | 1 |
drugs seller | 2 |
drugs trafficker | 3 |
murder in the first degree | 1 |
murder in the second degree | 2 |
sex offender | 1 |
sex worker | 2 |
Any help on this ?
My final goal is to study if people tend to chose the first propositions when they have to pick an answer in a list in case of autocomplete text filled questions.
Please excuse my english.
Try this:
data have;
input felony $50.;
cards;
drugs consumer
drugs seller
drugs trafficker
murder in the first degree
murder in the second degree
sex offender
sex worker
;
run;
data have1;
set have;
first_word = scan(felony,1);
run;
data want;
set have1;
by first_word; /* add nostsorted if necessary */
if first.first_word
then rank = 1;
else rank + 1;
run;
Try this:
data have;
input felony $50.;
cards;
drugs consumer
drugs seller
drugs trafficker
murder in the first degree
murder in the second degree
sex offender
sex worker
;
run;
data have1;
set have;
first_word = scan(felony,1);
run;
data want;
set have1;
by first_word; /* add nostsorted if necessary */
if first.first_word
then rank = 1;
else rank + 1;
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.