Hi @edison83. Welcome to SAS communities. Not at all a dumb question. Take a look at my code below!
What you want to do here is convert to long form and then transpose back:
data have;
infile datalines dlm=',' missover;
input ID (disease_1-disease_4) (:$15.);
datalines;
1,HIV,Meningitis
2,Ebola,pneumonia,
3,Flu,HIV,Ebola,
4,Flu,Ebola,Meningitis,
5,Flu,
6,Meningitis,Ebola,Flu,HIV
7,pneumonia,Flu,HIV,
8,Ebola,Meningitis,
9,Flu,Meningitis,
10,Ebola,
11,Ebola,
12,Meningitis,Flu,
13,Meningitis,Ebola,HIV,Flu
14,Meningitis,HIV,
;
run;
data have_long;
set have;
array arr_dis disease:;
do over arr_dis;
if arr_dis ne '' then
do;
disease=arr_dis;
output;
end;
end;
run;
proc sort data=have_long;
by id disease;
run;
proc transpose data=have_long(keep=id disease) out=want(drop=_name_);
by id;
id disease;
var disease;
run;
... View more