HI friends:
I have this data set:
data have;
input Questions sex yes no;
cards;
Question_1 male 2 5
Question_2 male 3 4
Question_3 male 5 1
;
and i have to obtain this table:
Question | Sex | yes_no |
1 | male | 1 |
1 | male | 1 |
1 | male | 0 |
1 | male | 0 |
1 | male | 0 |
1 | male | 0 |
1 | male | 0 |
2 | male | 1 |
2 | male | 1 |
2 | male | 1 |
2 | male | 0 |
2 | male | 0 |
2 | male | 0 |
2 | male | 0 |
3 | male | 1 |
3 | male | 1 |
3 | male | 1 |
3 | male | 1 |
3 | male | 1 |
3 | male | 0 |
need to be notice that 0 means NO and 1 means YES, from the origin dataset
Thanks in advance
data want;
set have;
Question = input(compress(questions, , 'kd'), 8.);
do i=1 to yes;
yes_no=1;
output;
end;
do i=1 to no;
yes_no=0;
output;
end;
run;
data want;
set have;
Question = input(compress(questions, , 'kd'), 8.);
do i=1 to yes;
yes_no=1;
output;
end;
do i=1 to no;
yes_no=0;
output;
end;
run;
Be aware that you cannot do any meaningful analysis of combinations of the questions such as "males that answered yes to questions 1 and 2" with data from a summary like this..
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.