BookmarkSubscribeRSS Feed
ChuksManuel
Pyrite | Level 9

Hello programmers,

 

I am trying to use proc report to replicated the format of the data in the picture.

 

Is there a way to combine 'Baseline Mean" and "Baseline Std" in the same column like in the form that i want it to? Same thing with "Month mean" and "Month std"

 

My data set and code is attached. Any form of help is needed.

 

1.JPG2.JPG

data AAA;
input grporder grpname $ Tc Tn $ Mean_baseline Mean_12_months std_baseline std_12_months prob_change run;
datalines;
1 Motor 2 UHDRS 32.8571 29.7143 6.2029 7.5435 0.29688 1
1 Motor 3 CHOREA 11.8571 10.1429 3.7607 1.8645 0.15625 1
1 Motor 4 GAIT 1.2857 1.2857 0.488 0.7559 1 1
1 Motor 5 TANDEM 1.8571 1.5714 1.069 1.3973 0.75 1
1 Motor 6 PULL 0.1429 0.7143 0.378 0.7559 0.125 1
1 Motor 7 BALANCE 3.2857 3.5714 1.3801 2.6367 1 1
2 Physical 1 TFC 6.5714 7 0.9759 2.1602 0.625 1
2 Physical 13 FA 20.2857 19.1429 2.2147 3.2367 0.3125 1
2 Physical 14 IS 77.1429 71.4286 8.5912 7.4801 0.28125 1
3 Cognigt 8 COWA 27.1667 31.5 8.2321 13.896 0.1875 1
3 Cognigt 9 SYMBAL 25.1429 20.1429 5.113 7.1514 0.09375 1
3 Cognigt 10 STRP1 45.8571 38.2857 13.5576 17.1437 0.04688 1
3 Cognigt 11 STRP2 61.7143 52.2857 19.414 22.5367 0.03125 1
3 Cognigt 12 STRP3 29.4286 28.1429 9.6065 10.4152 0.40625 1
3 Cognigt 15 MMSE 27.5 26.8333 2.51 2.6394 0.625 1
; run; proc report data= AAA split = '^' ;
title1 "Appendix 1: Baseline Data";
column grpname tn Mean_baseline Std_baseline Mean_12_months std_12_months prob_change;
define grpname/group width=10 order=data;
define tn/group width=10 order=data;
define Mean_baseline / display format=5.1'Baseline ^Mean' ;
define Std_baseline/ display format= 5.1 'Baseline ^ Std';
define Mean_12_months / display format=5.1 'Month 12^Mean';
define std_12_months/display format=5.1 'Month 12 ^ Std';
define prob_change/ display format=5.3 'Change^P-value';
run;

 

6 REPLIES 6
PaigeMiller
Diamond | Level 26

I do not think PROC REPORT can produce a format (even with custom format or pictures) like 33.9(6.2).


Why don't you use the DATA step method I provided for one of your earlier threads?

https://communities.sas.com/t5/SAS-Programming/Formating-output-after-proc-univariate/m-p/574273#M16...

--
Paige Miller
ChuksManuel
Pyrite | Level 9

Thank you.

I asked the same question about using formats and the response i got was vague. Hence why i opted for proc report as someone suggested earlier.

 

Please if i can't get output exactly in proc report, how do i:

1. Make the groupnames "Motor" "Physical" and "cognit" appear above their respective testnames.

2. How do i create a space to demarcate one groupname from another like in the excel pic. 

PaigeMiller
Diamond | Level 26

@ChuksManuel wrote:

Thank you.

I asked the same question about using formats and the response i got was vague. Hence why i opted for proc report as someone suggested earlier.

 

Please if i can't get output exactly in proc report, how do i:

1. Make the groupnames "Motor" "Physical" and "cognit" appear above their respective testnames.


It's the exact same concept that enabled us to put BMI in a different format as the last line of the previous example.

 

2. How do i create a space to demarcate one groupname from another like in the excel pic. 

I put spaces in the DATA step example, it's the same.

 

--
Paige Miller
ChrisNZ
Tourmaline | Level 20

Like this?

data CLASS;
  length NAME $16;
  set SASHELP.CLASS(where=(SEX='M' & AGE=14))
      SASHELP.CLASS(where=(SEX='F' & AGE=14));
run;
proc report data= CLASS;
  column SEX WEIGHT=WMAX NAME ;
  define SEX  / order order=data;
  define NAME / order  ;
  define WMAX / analysis max noprint;
  compute NAME;
    NAME=catt(NAME,' (',put(WMAX,8.2 -l),')');
  endcomp;
run;

Sex NAME
M Alfred (112.50)
  Henry (102.50)
F Carol (102.50)
  Judy (90.00)

 

ChuksManuel
Pyrite | Level 9
proc report data= AAA split= '^';
title1 "Appendix 1: Baseline Data";
  column grpname tn Meanbaseline Mean12months prob_change ;
  define grpname/group width=10 order=data;
define tn/group width=10 order=data;
define Mean_baseline/computed  'Baseline Mean (Std)';
define Mean_12_months/computed 'Month 12 Mean (Std)';
  compute Meanbaseline;
    Meanbaseline=catt(Mean_baseline,' (',put(Std_baseline,5.1),')');
  endcomp;
compute Mean12months;
    Mean12months=catt(Mean_12_months,' (',put(Std_12_months,5.1),')');
  endcomp;

run;

Thank you Chris.

 

Do you know how i can fit this into my code? It gave me an error message. Saying the variables are numeric.

 

ChrisNZ
Tourmaline | Level 20

1. Show the log

2. Why do you use /computed ?

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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
  • 6 replies
  • 651 views
  • 0 likes
  • 3 in conversation