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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.