Help using Base SAS procedures

customized proc report (add line)

Reply
Occasional Contributor
Posts: 15

customized proc report (add line)

[ Edited ]

Hello all,

I have this dataset named 'foreport' which will be used in proc report:

var1     var2     count      var4      var5    var6    var7    group  

one                                                                                  1

mn3     u1        15           5            5         4         1          1

mn3     u2        12           8            4        10        20        1 

mn3     u3          2           1            8         9         6           1

                                                                                        1

mn6     u1        11           2             5       10        8           1

mn6     u2         6            3            4         19       5           1

mn6     u3         5            6            2         6        3           1

two                                                                                 2                    

mn3     u1        15           5            5         4         1          2

mn3     u2         15           7            5         4         1          2

mn3     u3        15           5            5         4         1          2 

                                                                                       2

mn6     u1        15           5            5         4         1          2

mn6     u2        15           5            5         4         1          2

mn6     u3        15           5            5         4         1          2

three                                                                               3

mn3     u1        15           5            5         4         1          3

mn3     u2        15           5            5         4         1          3

mn3     u3        15           5            5         4         1          3

                                                                                       3

mn6     u1        15           5            5         4         1          3

mn6     u2        15           5            5         4         1          3

mn6     u3        15           5            5         4         1          3

 

What I want to get is table 'Want' displayed in the attached file  (PS: I need to remove blank line between '__________' and 'month 3').

 

 I tried with this program which need to be a bit modified to get the required result. It procudes the table 'Get' diplayed in the attached file

ods rtf file = "&path\file.rtf" STARTPAGE=no style=journal ;
ods escapechar='^'; 
proc report data = foreport  nowindows spacing = 1 headline headskip split = "|" ;
	columns  var1 var2 count var3 var4 var5 var6;
	by grp;
	define var1 /left group order=data "A" style(header)=[just=l font_weight=bold] style(column)=[just=l width=15%];
	define var2 /center display "B" style(header)=[just=c font_weight=bold] style(column)=[width=10%] ;
	define count /center display  "C" style(header)=[just=c font_weight=bold] style(column)=[width=8%] ;
	define var3 /center display  "D" style(header)=[just=c font_weight=bold] style(column)=[width=8%] ;
	define var4 /center display  "E" style(header)=[just=c font_weight=bold] style(column)=[width=18%] ;
	define var5 /center display  "F" style(header)=[just=c font_weight=bold]  style(column)=[width=18%];
	define var6 /center display  "G" style(header)=[just=c font_weight=bold] style(column)=[width=21%] ;
compute after var1 /
        style={protectspecialchars=off};
  line '\brdrt\brdrs ';
endcomp;
run; 
ods _all_ close;

 

Values inside the table are not important for me , I need just the layout.

I need to have a line under 'one' ,'two' and 'three' and not like in the table 'Get'.

I need to remove headers  reproduced because the by statement (I need only one header from the beginning).

Any suggestion please ? 

 

Contributor
Posts: 29

Re: customized proc report (add line)

1. Create a new variable to differentiate 'one, two, three, four, etc.' from others. for example, if col1 in ('one'  'two' 'three' 'four') then cat=1; else cat=2;

2. Add new variable 'cat' into column statement before col1;

3. define cat /order order=data noprint;

4. compute after cat /

 

Good luck

Ask a Question
Discussion stats
  • 1 reply
  • 217 views
  • 0 likes
  • 2 in conversation