BookmarkSubscribeRSS Feed
deleted_user
Not applicable
I have two datasets gender and stage and common variable called category.
But in the gender dataset this variable has got a format gender where as in the other dataset the same variale has different format called stage.
But when I am setting these two datasets, SAS takes format from the first dataset only and applies the same format for the values in the other dataset.
But I want to retain the formatted values in both datasets when I am concatenating two datasets. How can I achieve this?
2 REPLIES 2
Olivier
Pyrite | Level 9
If I understand well, you concatenate the two datasets with a SET statement. The common variable had different formats in the separate datasets, is that correct ?
You cannot have two formats on a single variable, depending on the observation. But what you can do is create a character variable, using a PUT statement that will apply the correct format depending on the origin of the observation.
Something like :[pre]
DATA work.concat ;
SET work.gender (IN = in_gender) work.stage (IN = in_stage) ;
IF in_gender THEN char_var = PUT(category, gender.) ;
ELSE char_var = PUT(category, stage.) ;
RUN ;
[/pre]
Regards
Olivier
LinusH
Tourmaline | Level 20
You can store the formatted value in a seperate column, something like this:

data genderstage;
set gender (in=g) stage (in=s);
if g then gendFmt = put(gender,$gendFmt.)
else gendFmt = put(gender,$stageFmt.);
run;

Regards,
Linus
Data never sleeps

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 2 replies
  • 1172 views
  • 0 likes
  • 3 in conversation