I have longitudinal data regarding activity of daily living.
This is how my data looks like:
| DMRN | recorded_time | item_name | mean_value |
| 8 | 01NOV2012 | Feeding | independent |
| 8 | 01NOV2012 | Grooming | independent |
| 8 | 01NOV2012 | Walking | independent |
| 8 | 01JUL2013 | Feeding | independent |
| 8 | 01JUL2013 | Grooming | independent |
| 8 | 01JUL2013 | Walking | needs assistance |
| 10 | 07JAN2019 | Feeding | independent |
| 10 | 07JAN2019 | Grooming | independent |
| 10 | 07JAN2019 | Walking | independent |
I would like to transpose the data into:
| DMRN | recorded_time | Feeding | Grooming | Walking |
| 8 | 01NOV2012 | independent | independent | independent |
| 8 | 01JUL2013 | independent | independent | needs assistance |
| 10 | 07JAN2019 | independent | independent | independent |
I tried these following codes but it didn't work out because there are too many values occur in the same by group.
proc sort data = ADL;
by dmrn recorded_time;
run;
*Transpose data;
proc transpose data = ADL out = ADL_flipped;
by dmrn;
id item_name;
var mean_value;
run;
Can anyone please help me with this issue? Thank you very much.
Add your date variable also to the Proc Transpose BY statement.
data ADL;
infile datalines truncover;
input DMRN recorded_time:date9. item_name:$10. mean_value:$12.;
format recorded_time date9.;
datalines;
8 01NOV2012 Feeding independent
8 01NOV2012 Grooming independent
8 01NOV2012 Walking independent
8 01JUL2013 Feeding independent
8 01JUL2013 Grooming independent
8 01JUL2013 Walking needs assistance
10 07JAN2019 Feeding independent
10 07JAN2019 Grooming independent
10 07JAN2019 Walking independent
;
proc sort data = ADL;
by dmrn recorded_time;
run;
/*Transpose data*/
proc transpose data = ADL out = ADL_flipped(drop=_name_);
by dmrn recorded_time;
id item_name;
var mean_value;
run;
Add your date variable also to the Proc Transpose BY statement.
data ADL;
infile datalines truncover;
input DMRN recorded_time:date9. item_name:$10. mean_value:$12.;
format recorded_time date9.;
datalines;
8 01NOV2012 Feeding independent
8 01NOV2012 Grooming independent
8 01NOV2012 Walking independent
8 01JUL2013 Feeding independent
8 01JUL2013 Grooming independent
8 01JUL2013 Walking needs assistance
10 07JAN2019 Feeding independent
10 07JAN2019 Grooming independent
10 07JAN2019 Walking independent
;
proc sort data = ADL;
by dmrn recorded_time;
run;
/*Transpose data*/
proc transpose data = ADL out = ADL_flipped(drop=_name_);
by dmrn recorded_time;
id item_name;
var mean_value;
run;
Thank you for your response! I tried your code after I had fixed some problems with my data and it worked out!
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →SAS' Charu Shankar shares her PROC SQL expertise by showing you how to master the WHERE clause using real winter weather data.
Find more tutorials on the SAS Users YouTube channel.