BookmarkSubscribeRSS Feed
skibur
Fluorite | Level 6

Hi everyone,

 

I was given a dataset with first name and last name variables and asked to concatonate these and then order the full name alphabetically. I have managed to concatonate the names but I am struggling to order the full name. Hopefully the example below will clear things up.

 

Data I had:

fname     sname

Jim         Smith

Tom        Bell

 

Data currently:

fullname

JimSmith

TomBell

 

Data I need:

fullname2

hiiJmmSt

BellmoT

 

Apologies if this has been answered but I have not found anything on my searches!

 

Thanks in advance

9 REPLIES 9
HB
Barite | Level 11 HB
Barite | Level 11
This looks like homework. My guess would be you would set up a loop to break each concatenated name into individual characters, dump them in an array one by one, sort the array, and output the contents.
skibur
Fluorite | Level 6
I can see why it looks like homework! But no its for a work project and I am a relative beginner and it was causing me issues. I wouldnt have came to here without having a go myself.

Thanks for the advice, it is much appreciated!
novinosrin
Tourmaline | Level 20

Data currently;

input fullname $20.;

datalines;

JimSmith

TomBell

;

data want;

set currently;

array t(50) $  _temporary_;

call missing(of t(*));

do _n_=1 to length(strip(fullname));

t(_n_)=lowcase(char(fullname,_n_));

end;call sortc(of t(*));newname=cats(of t(*));run;

skibur
Fluorite | Level 6
Thank you so much. I will try to understand this.
BrunoMueller
SAS Super FREQ
Have a look at the CALL SORTC routine.
Define an array, put your chars into the array elements and then use the CALL SORTC.

What is the use case for this data manipulation?
skibur
Fluorite | Level 6
Thanks for your advice. I dont want to say too much but its for data matching with another work data set.
HB
Barite | Level 11 HB
Barite | Level 11

data matching with another work data set.

 

Hmm.  "Tim Mott" and "Tom Mitt" will not match in name form, but will match in sorted anagram form. That could be interesting.

Andygray
Quartz | Level 8

@skibur  I think your question has been answered. Please close the thread. It's way too simple question

HB
Barite | Level 11 HB
Barite | Level 11
Not that simple for me.

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 9 replies
  • 4854 views
  • 7 likes
  • 5 in conversation