BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
tan-wongv
Obsidian | Level 7

I have longitudinal data regarding activity of daily living.

This is how my data looks like:

DMRNrecorded_timeitem_namemean_value
8 01NOV2012Feedingindependent
8 01NOV2012Groomingindependent
8 01NOV2012 Walkingindependent
801JUL2013Feedingindependent
801JUL2013Groomingindependent
801JUL2013 Walkingneeds assistance
1007JAN2019Feedingindependent
1007JAN2019Groomingindependent
1007JAN2019 Walkingindependent

 

I would like to transpose the data into:

DMRNrecorded_timeFeedingGroomingWalking
801NOV2012independentindependentindependent
801JUL2013independentindependentneeds assistance
1007JAN2019independentindependentindependent

 

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.

1 ACCEPTED SOLUTION

Accepted Solutions
Patrick
Opal | Level 21

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;

 

View solution in original post

2 REPLIES 2
Patrick
Opal | Level 21

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;

 

tan-wongv
Obsidian | Level 7

Thank you for your response! I tried your code after I had fixed some problems with my data and it worked out!

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Mastering the WHERE Clause in PROC SQL

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.

Discussion stats
  • 2 replies
  • 285 views
  • 0 likes
  • 2 in conversation