So I have a file that has the following data:
User,
Session
What I want to happen is I want to list a user and then for each of the three sessions have a "Y" or "N" if they attended. So something like this:
User | Session 1 | Session 2 | Session 3 |
Harry Crumb | Y | N | Y |
I have tried this code, however I am getting three separate lines generated. So I am trying to figure out how to put everything on the 1 line.
CASE
when Session in ('Session_1') then ('Y)
else ('N')
end as Session_1,
CASE
when Session in ('Wave_2') then ('Y')
else ('N')
end as WAVE_2,
CASE
when Session in ('Session_3') then ('Y')
else ('N')
end as Session_3
I was trying to search for the answer, but I am not sure what this type of syntax is called.
In a first data step, add a variable x that contains just a 'Y'.
Then transpose with
by user;
id session;
var x;
In a final data step, replace all missing character variables with 'N'.
This method is data-driven , no explicit coding for values is needed.
Note that for this to work, session must contain valid SAS names.
In a first data step, add a variable x that contains just a 'Y'.
Then transpose with
by user;
id session;
var x;
In a final data step, replace all missing character variables with 'N'.
This method is data-driven , no explicit coding for values is needed.
Note that for this to work, session must contain valid SAS names.
Thank you that was a big help. I have only used PROC Transpose a few times, so I didn't think of using it here. I will be using this again I'm sure!
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.