DATA Step, Macro, Functions and more

variable has different formats, how can I retain all formatted values

Reply
N/A
Posts: 0

variable has different formats, how can I retain all formatted values

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?
Super Contributor
Posts: 260

Re: variable has different formats, how can I retain all formatted values

Posted in reply to deleted_user
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
Super User
Posts: 5,427

Re: variable has different formats, how can I retain all formatted values

Posted in reply to deleted_user
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
Ask a Question
Discussion stats
  • 2 replies
  • 147 views
  • 0 likes
  • 3 in conversation