Hi All,
I need your help, I would like to know how to extract the position value after the second word (i.e., Kamireddy Jagan Reddy). I want the position number for (i.e.,reddy).
data ds1;
input name:&$35.;
cards;
Kamireddy jagan reddy
Adithya Desh Pandey
Ankit Patel Rathod
;run;
Hi @saitejaguduru97 and welcome to the SAS Support Communities!
You can use the CALL SCAN routine to obtain the position and length of the nth word of a string.
Example:
data want;
set ds1;
call scan(name,3,pos,len);
run;
Variable POS will contain the position of the first character of the third word in NAME (using default delimiters as word boundaries) and variable LEN the length of this word. (Both are set to zero if there is no third word.)
So if you need the position of the last character of the second word, you can calculate it like this:
data want;
set ds1;
call scan(name,2,pos,len);
word2end=pos+len-1;
run;
Thank you So much for your reply....
I have one more doubt regarding the same. Please find the below example:-
See the first variable has separated by 4 spaces and after that separated with 3 spaces only in which i need 4th position and 3rd position numbers. Can i get?
data ds1;
input name$35.;
datalines;
kamireddy jagan mohan reddy
nara chandrababu naidu
konidela pawan kalyan
;run;
data want;
set ds1;
num_words=countw(name);
call scan(name,num_words,pos,len);
run;
Thank you Miller i got the result.
Can i get the 1 and 2 position values with the provided coded?
This was already explained by @FreelanceReinh
@saitejaguduru97 wrote:
Thank you So much for your reply....
(...)
See the first variable has separated by 4 spaces and after that separated with 3 spaces only in which i need 4th position and 3rd position numbers. Can i get?
(...)
datalines;
kamireddy jagan mohan reddy
nara chandrababu naidu
You're welcome.
For the last word of a string you can use -1 as the second argument of the CALL SCAN routine (see count argument in the documentation).
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.