BookmarkSubscribeRSS Feed
saitejaguduru97
Calcite | Level 5

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;

6 REPLIES 6
FreelanceReinh
Jade | Level 19

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;
saitejaguduru97
Calcite | Level 5

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;

PaigeMiller
Diamond | Level 26
data want;
set ds1;
num_words=countw(name);
call scan(name,num_words,pos,len);
run;
--
Paige Miller
saitejaguduru97
Calcite | Level 5

Thank you Miller i got the result.

Can i get the 1 and 2 position values with the provided coded?

 

PaigeMiller
Diamond | Level 26

This was already explained by @FreelanceReinh 

--
Paige Miller
FreelanceReinh
Jade | Level 19

@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).

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 6 replies
  • 2026 views
  • 1 like
  • 3 in conversation