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

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 828 views
  • 0 likes
  • 3 in conversation