会开花的小花花

导航

proc report 一二三事:循环输出,分情况输出,加横线、加文本信息、加空白行及宽度设置

输出output的时候,因某些原因,例如不同组别的某些情况不一样,则需要分开输出,有规律的可以使用%do循环,没规律的可以使用%if分情况输出:

对于按照分组来proc report的table,每个组具有不同的N,则应该每个组循环report,用不同的每个组不同的N值放在表头位置。采用循环的方式———>在宏程序中使用do循环,制造宏变量i来引用。
%macro report;
options papersize=letter orientation=landscape nodate nonumber center missing=" " nobyline;
ods escapechar="@";
ods listing close;

%do i=1 %to 4;
proc report data = final (where=(agegr2n=&i.)) missing nowd headline headskip nocenter spacing = 2 split = "~";
 column……("Completion/Discontinuation @R/RTF'\fs0\brdrb\brdrs\brdrw10\qc" col4 col5);
 note:brdrw10是header那一栏分割线的宽度,qc表示居中显示,ql表示居左显示;col4和col5共同拥有header "Completion/Discontinuation"

                    
 define……;
 define col2/display "Placebo ->~SD-101-6.0~(N=&&x&i)~n (%)"       &line. style(column)=[cellwidth=21.5% just=c asis=on]   style(header)=[just=c] ;
 define col3/display "SD-101-6.0 ->~SD-101-6.0~(N=&&y&i)~n (%)"  &line. style(column)=[cellwidth=21.5% just=c asis=on]   style(header)=[just=c] ;
 define col4/display "Total~(N=&&z&i)~n (%)"                                     &line. style(column)=[cellwidth=21.5% just=c asis=on]   style(header)=[just=c] ;
 break after page/page ;                   
 compute after seq;
  line '@\fs6';               note:每个小组数之间加空行,包括空行宽度
 endcomp;                                     

 compute after _page_;
  line &line;                  note: 页后加横线
 endcomp;              

compute before _page_ /left;
  text="Age group: "||strip(col0);       
  line @1 text $100.;    note:页前加横线,页前加分组信息文本内容  
  line &line.; 
endcomp;                                     
%end;
run;


ods rtf close;
ods listing;
%mend report;                       

posted on 2020-01-03 04:30  会开花的小花花  阅读(3877)  评论(0编辑  收藏  举报