BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
stancemcgraw
Obsidian | Level 7

data have: 

 

StudyNumResponseScoreAssessmentAssessmentAssessmentDT
1233Y Frailty7/8/18 6:00
1233N Dementia 
1096 2Frailty 
1236N Dementia 
1236Y3Frailty7/11/18 3:00
1253Y4Frailty8/9/18 5:00

data want:

 each study number has a response, a score assessment, an assessment, and an assessment DT long ways. Is there a macro code to transpose those variables so I don't have to do several transpose steps?

1 ACCEPTED SOLUTION

Accepted Solutions
data_null__
Jade | Level 19
data have;
   infile cards missover;
   input StudyNum 4. + 1 Response $1. +1 ScoreAssessment 1.  Assessment:$16. AssessmentDT &mdyampm.;
   format AssessmentDT  datetime.; 
   cards;
1233 Y   Frailty 7/8/18 6:00 
1233 N   Dementia   
1096   2 Frailty   
1236 N   Dementia   
1236 Y 3 Frailty 7/11/18 3:00 
1253 Y 4 Frailty 8/9/18 5:00 
;;;;
   run;
proc sort;
   by studynum;
   run;
proc print;
   run; 
%macro t(var=);
   proc transpose data=have out=&var(drop=_name_) suffix=&var;
      by studynum;
      var &var;
      id Assessment;
      run;
   %mend t;
%t(var=ScoreAssessment);
%t(var=Response)
%t(var=AssessmentDT);

data want;
   merge ScoreAssessment response Assessmentdt;
   by studynum;
   run;

View solution in original post

5 REPLIES 5
novinosrin
Tourmaline | Level 20

data want is not clear to me, may i request you to provide that too 

stancemcgraw
Obsidian | Level 7
StudyNumResponseScoreAssessmentAssessmentAssessmentDT
1233Y Frailty7/8/18 6:00
1233N Dementia 
1096 2Frailty 
1236N Dementia 
1236Y3Frailty7/11/18 3:00
1253Y4Frailty8/9/18 5:00

 

data want:

studynum   FrailtyScore   Dementia Score    Frailty    Dementia       FrailtyAssessmentDT     Dementia AssessmentDT

1233             3                           .                        Yes         No                7/8/16: 6:00                           .

data_null__
Jade | Level 19
data have;
   infile cards missover;
   input StudyNum 4. + 1 Response $1. +1 ScoreAssessment 1.  Assessment:$16. AssessmentDT &mdyampm.;
   format AssessmentDT  datetime.; 
   cards;
1233 Y   Frailty 7/8/18 6:00 
1233 N   Dementia   
1096   2 Frailty   
1236 N   Dementia   
1236 Y 3 Frailty 7/11/18 3:00 
1253 Y 4 Frailty 8/9/18 5:00 
;;;;
   run;
proc sort;
   by studynum;
   run;
proc print;
   run; 
%macro t(var=);
   proc transpose data=have out=&var(drop=_name_) suffix=&var;
      by studynum;
      var &var;
      id Assessment;
      run;
   %mend t;
%t(var=ScoreAssessment);
%t(var=Response)
%t(var=AssessmentDT);

data want;
   merge ScoreAssessment response Assessmentdt;
   by studynum;
   run;
stancemcgraw
Obsidian | Level 7

Great thank you that worked!!!!

ballardw
Super User

@stancemcgraw wrote:
StudyNum Response ScoreAssessment Assessment AssessmentDT
1233 Y   Frailty 7/8/18 6:00
1233 N   Dementia  
1096   2 Frailty  
1236 N   Dementia  
1236 Y 3 Frailty 7/11/18 3:00
1253 Y 4 Frailty 8/9/18 5:00

 

data want:

studynum   FrailtyScore   Dementia Score    Frailty    Dementia       FrailtyAssessmentDT     Dementia AssessmentDT

1233             3                           .                        Yes         No                7/8/16: 6:00                           .


Please make output data based on example input. Your input does not show any value for FrailtyScore (or any value of 3 for that matter) associated with studynum=1233

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!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 953 views
  • 0 likes
  • 4 in conversation