Hello,
I have the following code. In the gender dataset created Sex variable is still being outputted as 1 or 2 instead of being Male /Female.
genderkey is a charecter variable
Please suggest me if i went wrong?
data test1(rename=(genderkey=start name=label));
set gender_dataset(keep=genderkey name);
fmtname='genderfmt';
run;
proc format cntlin=test1;run;
START LABEL FMTNAME
1 Female genderfmt
2 Male genderfmt
data gender;
set have;
Sex=put(genderkey,genderfmt.);
run;
Hi,
I assume from what you have given that SEX is numeric, hence it will not map to the character format created by the read in. In test 1, convert genderkey to a number then it will create a number when read in as format. Currently 1 != "1". What you want is something like:
proc format;
value genderfmt
1="Female"
2="Male";
run;
data gender;
genderkey=1;
Sex=put(genderkey,genderfmt.);
run;
Try
data test1;
set gender_dataset;
start = input(genderkey, best.);
label = name;
fmtname = 'genderfmt';
keep start label fmtname;
run;
proc format cntlin=test1; run;
data gender;
set have;
Sex = put(genderkey, genderfmt.);
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.