I've recoded the marriage variable to represent 1 = married and 0 = not remarried. How and where may I add a labels "married" and " not "married"? I also want to label edu_numeric as "CR Education"
Set ICPNEED.data_trim4;
edu_numeric = edu + 0;
If marriage = 1 then cr_marital = 1 "married";
Else
if marriage = 2 then cr_marital = 0 "not married";
Else
if marriage = 3 then cr_marital = 0;
Else
if marriage = 4 then cr_marital = 0;
Else
if marriage = 5 then cr_marital = 0;
Else
if marriage = . then cr_marital = .;
Label cr_marital = 'Care Recipient Marital Status';
Run;
Use a format to display 0/1 values as text:
data have;
input marriage;
datalines;
.
1
2
3
4
5
;
proc format;
value marital_status
1 = "married"
0 = "not married"
;
run;
data want;
set have;
if marriage in (2,3,4,5)
then cr_marital = 0;
else cr_marital = marriage; /* covers 1 and missing */
format cr_marital marital_status.;
label cr_marital = 'Care Recipient Marital Status';
run;
In your real data, assign the label for edu_numeric in the same way as for cr_marital.
BTW
edu_numeric = edu + 0;
is fully equivalent to
edu_numeric = edu;
Labels are attached to variables (or also there a dataset labels).
So if you want to attach a label to CR_MARITAL that explains how it is coded you might do something like;
label cr_martial = 'Marriage status 1=Married 0=Not Married';
But I think what you are really looking is a way to display the VALUES in a special way. That is what a FORMAT is for.
If you want a format that displays 1 as Married and 0 as Not Married then define a format that does that.
proc format;
value marital
0='Not Married'
1='Married'
other='Unkown'
;
run;
Then attach that format to any variable whose values you want to display that way.
format cr_marital marital.;
Note you can use the same format for as many variables that use the same coding. For example if you a dataset that also had marital status for the parents you could the MARITAL format for those variables also.
Note that if you are coding a lot of binary variables it might just be easier to make a YESNO format instead and use it for all of them.
proc format ;
value yesno 0='No' 1='Yes' ;
run;
proc freq data=have;
tables married dead active ;
format married dead active yesno.;
run;
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.