good afternoon,
please tell what is wrong wit this code.
DATA STDTELMT.MERGED_I1;
SET STDTELMT.MERGED_I;
IF SEX_WITH_MALE="1" THEN GENDER_SP="1";
IF SEX_WITH_MAN="1" AND SEX_W_MALE="0" THEN GENDER_SP="1";
IF SEX_W_FEMALE="1" THEN GENDER_SP="2";
IF SEX_W_FEMALE="1" AND SEX_WITH_MALE="1" AND SEX_W_MAN="0" AND SEX_W_TRANSGENDER="0" THEN GENDER_SP="3";
IF SEX_W_FEMALE="1" AND SEX_WITH_MALE="1" AND SEX_W_MAN="1" AND SEX_W_TRANSGENDER="0" THEN GENDER_SP="3";
IF SEX_W_FEMALE="1" AND SEX_WITH_MALE="1" AND SEX_W_MAN="1" AND SEX_W_TRANSGENDER="1" THEN GENDER_SP="3";
IF SEX_W_FEMALE="0" AND SEX_WITH_MALE="0" AND SEX_W_MAN="0" AND SEX_W_TRANSGENDER="0" THEN GENDER_SP="9";
IF SEX_W_FEMALE="0" AND SEX_WITH_MALE="0" AND SEX_W_MAN="0" AND SEX_W_TRANSGENDER="1" THEN GENDER_SP="9";
RUN;
/*CHECKING TO SEE IF THE CODE ABOVE WORKED*/
PROC FREQ DATA=STDTELMT.MERGED_I1;
TABLE GENDER_SP;
RUN;
it only created this table.
1529 | 100.00 | 1529 | 100.00 |
What does your log say? Does the code generate an error?
If your syntax is correct then this is probably a logic issue and there are records that don't match any of your criteria. You could look at your output STDTELMT.MERGED_I1 table for records without a GENDER_SP value, then troubleshoot.
Register today and join us virtually on June 16!
sasglobalforum.com | #SASGF
View now: on-demand content for SAS users
@Dhana18 wrote:
good afternoon,
please tell what is wrong wit this code.
DATA STDTELMT.MERGED_I1;
SET STDTELMT.MERGED_I;
IF SEX_WITH_MALE="1" THEN GENDER_SP="1";
IF SEX_WITH_MAN="1" AND SEX_W_MALE="0" THEN GENDER_SP="1";
IF SEX_W_FEMALE="1" THEN GENDER_SP="2";
IF SEX_W_FEMALE="1" AND SEX_WITH_MALE="1" AND SEX_W_MAN="0" AND SEX_W_TRANSGENDER="0" THEN GENDER_SP="3";
IF SEX_W_FEMALE="1" AND SEX_WITH_MALE="1" AND SEX_W_MAN="1" AND SEX_W_TRANSGENDER="0" THEN GENDER_SP="3";
IF SEX_W_FEMALE="1" AND SEX_WITH_MALE="1" AND SEX_W_MAN="1" AND SEX_W_TRANSGENDER="1" THEN GENDER_SP="3";
IF SEX_W_FEMALE="0" AND SEX_WITH_MALE="0" AND SEX_W_MAN="0" AND SEX_W_TRANSGENDER="0" THEN GENDER_SP="9";
IF SEX_W_FEMALE="0" AND SEX_WITH_MALE="0" AND SEX_W_MAN="0" AND SEX_W_TRANSGENDER="1" THEN GENDER_SP="9";
RUN;
/*CHECKING TO SEE IF THE CODE ABOVE WORKED*/
PROC FREQ DATA=STDTELMT.MERGED_I1;
TABLE GENDER_SP;
RUN;
it only created this table.
The FREQ ProcedureGENDER_SP Frequency Percent CumulativeFrequency CumulativePercent1Frequency Missing = 3602
1529 100.00 1529 100.00
If you run the following code it will show all of the assignment combinations of the variable and the independent variables.
proc freq data=stdtelmt.merged_i1; tables SEX_WITH_MALE*SEX_WITH_MAN* SEX_W_FEMALE*SEX_W_MAN*SEX_W_TRANSGENDER*GENDER_SP /list missing; run;
My suspicion involves either missing values for like named variables SEX_WITH_MALE and SEX_W_MAN plus use of "AND" where likely OR was needed.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.