I'm trying to transpose a table using the code below. The problem is that a person can have multiple encounters on the same day. The output from the code below puts same-day info into separate columns. Is there some trick to getting SAS to stack all the Diagnosis_1-Diagnosis_10 info into a single column?
proc transpose data=TBI_temp out=TBI_transposed;
by Person_ID Encounter_Date;
var Diagnosis_1-Diagnosis_10 ;
run;
Thanks,
Brian
Proc Transpose doesn't have a mechanism to transpose by OBS when there is no obs unique ID. It is simpler to do the transpose explicitly in a data step.
data TBI_transposed;
set TBI_temp;
array d Diagnosis_1-Diagnosis_10;
do i = 1 to dim(d);
Diagnosis = d{i};
output;
end;
keep Person_ID Encounter_Date Diagnosis;
run;
(untested)
Proc Transpose doesn't have a mechanism to transpose by OBS when there is no obs unique ID. It is simpler to do the transpose explicitly in a data step.
data TBI_transposed;
set TBI_temp;
array d Diagnosis_1-Diagnosis_10;
do i = 1 to dim(d);
Diagnosis = d{i};
output;
end;
keep Person_ID Encounter_Date Diagnosis;
run;
(untested)
Thanks!
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.