BookmarkSubscribeRSS Feed
Saikiran_Mamidi
Obsidian | Level 7

DATA HAVE;

INPUT NAME$30.;

CARDS;

SAI KIRAN PATEL

UMA 

RAVI KIRAN

;

RUN;

 

   I WANT DATA LIKE THIS WITHOUT USING ARRAYS

F-NAME         M-NAME            L-NAME

SAI                 KIRAN                 PATEL

UMA

RAVI                                          KIRAN

 

CAN I GET CODE PLEASE?  THANKS

 

 

 

3 REPLIES 3
PeterClemmensen
Tourmaline | Level 20

Try this

 

data want(drop=name);
   set have;
   f_name = scan(name, 1);
   m_name = scan(name, 2);
   l_name = scan(name, 3);
run;
Saikiran_Mamidi
Obsidian | Level 7

EDITED DATA ABOVE PLEASE CHECK AGAIN?

 

PeterClemmensen
Tourmaline | Level 20

Quick fix

 

data want(drop=name);
   set have;
   f_name = scan(name, 1);
   m_name = scan(name, 2);
   if countw(name) = 2 then do;
      call missing(m_name);
      l_name = scan(name, 2);
   end;
   else l_name = scan(name, 3);
run;
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
  • 3 replies
  • 1045 views
  • 1 like
  • 2 in conversation