SAS中文论坛

标题: SAS在临床试验中的应用专集 [打印本页]

作者: shiyiming    时间: 2004-11-1 08:18
标题: SAS在临床试验中的应用专集
1、 sas在临床试验中的应用(I)──交叉设计  数理统计与管理  1997    05   
2、  随机化临床试验及随机化的sas实现  中国临床药理学与治疗学  2001        
3、  多中心临床试验的随机化方案设计  中药新药与临床药理  2002    05   
4、  定性指标的sas统计分析报表――sas软件在新药临床试验统计分析中的应用  中国卫生统计  2003    01   
5、  审核临床试验数据的操作规程与sas程序  

附件是pdf文件,5篇文章。
作者: shiyiming    时间: 2004-11-2 22:26
标题: 正态分布定量指标统计分析报表的SAS宏程序
正态分布定量指标统计分析报表的SAS宏程序
作者: shiyiming    时间: 2004-11-4 07:47
标题:
我觉得SAS的统计分析报表还是很难做到一步到位。更倾向于excel画。
作者: shiyiming    时间: 2005-9-8 21:57
标题: thanks a lot
thank you
作者: shiyiming    时间: 2005-10-11 22:39
标题: to collen
大侠, 现在觉得怎么样? 经过一年的修炼,应该没问题了吧.
作者: shiyiming    时间: 2005-10-12 07:29
标题: to sxlion
不是什么大侠,现在统计分析报表用put在output窗口或者追加到文件中都没有问题,在student的建议下,改学用ods输出。
作者: shiyiming    时间: 2005-10-12 16:11
标题: 谢谢
真是不错,谢谢
作者: shiyiming    时间: 2005-11-10 23:34
标题: Re:
将ods与tabulate结合起来使用就可以满足一般的表格制作需要了,我做了很多的统计分析,均是这么做的,此外,还可以自己编制宏程序也可以解决这个问题。下面给出一段程序,请各位指教。
[code:645a5]%MACRO meanf2(data,var=,colvar=,rowvar=,dec=0.1,prnopt=0,where=);
*****************************************************************
  stratified calculation of N MEAN STD
Example:
  %unistrat(workdata,                 * dataset name
    var=height weight bsfev1 b1fev1,  * variables name
    colvar=sex,                       * column strata variable name
    rowvar=nid mech smk_cur,          * row strata variables name
    dec=0.1);                         * decimal posiong
*******************************************************************;
options nocenter nodate nonumber;title;
%let nrv=%wordcnt(string=&rowvar, delim=%str( ));
%let nxv=%wordcnt(string=&var, delim=%str( ));
PROC IML;USE &data;SETIN &data;reset noname nocenter;
  dcm=abs(log10(&dec));dct=dcm+5;xvar={&var}`;xvar=compress(xvar);
  Start meanxx(mx);
    dcm=abs(log10(&dec));dct=dcm+5;
    nmx=choose(mx=.,0,1)[+,];meanx=mx[+,]/nmx;
    stdx=(((mx#mx)[+,]-mx[+,]#mx[+,]/nmx)/(nmx-1))##0.5;
    return
(compress(char(meanx,dct,dcm)+"+"+char(stdx,dct,dcm)+",  ("+char(nmx,5)+")"));
  Finish meanxx;
  read all var {&var} into DD1 %if &where ^= %then where (&where);;
  %if &colvar^= %then %do;
    read all var {&colvar} into CC %if &where ^= %then where (&where);;
  %end; %else %do; CC=j(nrow(DD),1,1); %end;
  CC1=unique(CC);CC2=CC1[,loc(CC1^=.)];nccv=ncol(CC2);
  %if &colvar^= %then
    clname="Var.  Strata"||compress("&colvar"+"="+char(CC2));
  %else clname="      ";;
  %do x=1 %to &nxv; DD=DD1[,&x]; xvi=xvar[&x];
  %do r=1 %to &nrv;
    %let rvi=%scan(&rowvar, &r);
    read all var {&rvi} into RR %if &where ^= %then where (&where);;
    RR1=unique(RR);
    if type(RR)='N' then RR1=RR1[,loc(RR1^=.)];
    else RR1=RR1[,loc(RR1>" ")];
    nrrv=ncol(RR1);
    do b=1 to nrrv;
     rrb=RR1[b];if type(rrb)='N' then rrb1=compress(char(rrb));
     rrbc=xvi+": "+"&rvi="+rrb1;
     do c=1 to nccv; ccc=CC2[c];
      
LL1=choose(CC=ccc,1,0);LL2=choose(RR=rrb,1,0);LL=choose(LL1=LL2,LL1,0);
      if type(ccc)='N' then ccc1=char(ccc);
      if sum(LL)>3 then OO=OO||meanxx(DD[loc(LL=1),]);
      else OO=OO||j(1,ncol(DD)," ");
     end;
     OOR=OOR//(rrbc||shape(OO,1));free OO;
    end;
  %end;
  %end;
  *OXI=(compress(OOR[,1])+"="+compress(OOR[,2]))||OOR[,3:(ncol(OOR))];
  print "Mean+SD(N) for &var,data:&data &where",OOR [colname=clname];
  free OOR;
QUIT;
%if &prnopt=0 %then %do;ods select none;%end;
%do x=1 %to &nxv; %let xvi=%scan(&var,&x);
   %do r=1 %to &nrv;
     %let rvi=%scan(&rowvar,&r);
     proc glm data=&data;where &where;class &rvi &colvar;
      ods output modelanova=tmp1;
      model &xvi=&rvi &colvar %if &colvar ne %then %do;&rvi*&colvar;%end;;
     run;
     %if &r=1 and &x=1 %then %do; data tmpaov;set tmp1;run;%end;
     %else %do; data tmpaov;set tmpaov tmp1;memo="    ";
     if 0<probf<=0.01 then memo="**";
     else if 0.01<probf<=0.05 then memo="*";
     else if 0.05<probf<=0.10 then memo="@";run;%end;
   %end;
  %end;
  ods select all;
  proc print data=tmpaov noobs;var dependent source df ss fvalue probf memo;
  data tmp1;data tmpaov;run;
%MEND meanf2;[/code:645a5]具体的用法:
%meanf2(aa,colvar=group,rowvar=sex smoke,var=sbp dbp,dec=0.01);
搞定
作者: shiyiming    时间: 2007-6-6 11:39
标题: to collen (6楼)
我在使用ods输出统计报表时(输出到rtf文件中去),中文出现了乱码,但使用put输出到output窗口中却不会出现乱码现象,在此请教各位高手,如何解决这一难题?急等解决方案,谢谢!我使用的是sas9.0软件。
作者: shiyiming    时间: 2007-6-6 12:18
标题: Re: SAS在临床试验中的应用专集
请教各位高手:

哪位老大能够编写一段宏程序,将多元线性回归分析或Logistic回归分析的结果直接生成下面的格式?非常感谢!

我本想将下面的两张表格以附件的形式给出,可是我却不知如何上传附件(找不到链接),哪位老大可以教我?谢谢!

特别说明:下面两张表格中的数据均是假数据,请各位不要较真,只是为了显示表格的格式。
[quote:06e15]
表1. 不同组别治疗56天后血压差值(前-后)协方差分析 (PP) (ITT)
var.        Group        n        mean±std              Crude                           Adjusted
                                 beta(SE)        P        beta(SE)        P
PP                                                       
sbp reduction  1        30        12.1±2.3          0.0(0.0)        ref        ref        ref
              2        32        11.4±3.1          0.9(1.2)        0.754        0.7(1.3)        0.837
              3        25        21.3±4.1          2.1(2.3)        0.001        2.0(2.1)        0.002
dbp reduction  1        30        12.1±2.3          0.0(0.0)        ref        ref        ref
              2        32        11.4±3.1          0.9(1.2)        0.754        0.7(1.3)        0.837
              3        25        21.3±4.1          2.1(2.3)        0.001        2.0(2.1)        0.002
ITT                                                       
sbp reduction  1        30        12.1±2.3          0.0(0.0)        ref        ref        ref
              2        32        11.4±3.1          0.9(1.2)        0.754        0.7(1.3)        0.837
              3        25        21.3±4.1          2.1(2.3)        0.001        2.0(2.1)        0.002
dbp reduction  1        30        12.1±2.3          0.0(0.0)        ref        ref        ref
              2        32        11.4±3.1          0.9(1.2)        0.754        0.7(1.3)        0.837
            3        25        21.3±4.1          2.1(2.3)        0.001        2.0(2.1)        0.002

表2. 不同组别治疗56天后降压疗效的Logistic分析 (PP) (ITT)
var.        Group        n         K(%)                    Crude                                     Adjusted
                                OR        95%CI        P        OR        95%CI        P
PP                                                                       
sbp        1        30        11(34.0%)        1.0         ref        ref        1.0         ref        ref
        2        32        12(35.0)        0.9        0.5,1.2        0.754        0.9(1.2)        0.5,1.2        0.754
        3        25        19(81.1%)        2.1        1.9,2.5        0.001        2.1(2.3)        1.9,2.5        0.001
dbp        1        30        11(34.0%)        1.0         ref        ref        1.0         ref        ref
        2        32        12(35.0)        0.9        0.5,1.2        0.754        0.9(1.2)        0.5,1.2        0.754
        3        25        19(81.1%)        2.1        1.9,2.5        0.001        2.1(2.3)        1.9,2.5        0.001
ITT                                                                       
sbp        1        30        11(34.0%)        1.0         ref        ref        1.0         ref        ref
        2        32        12(35.0)        0.9        0.5,1.2        0.754        0.9(1.2)        0.5,1.2        0.754
        3        25        19(81.1%)        2.1        1.9,2.5        0.001        2.1(2.3)        1.9,2.5        0.001
dbp        1        30        11(34.0%)        1.0         ref        ref        1.0         ref        ref
        2        32        12(35.0)        0.9        0.5,1.2        0.754        0.9(1.2)        0.5,1.2        0.754
         3        25        19(81.1%)        2.1        1.9,2.5        0.001        2.1(2.3)        1.9,2.5        0.001
[/quote:06e15]
作者: shiyiming    时间: 2007-6-11 15:10
标题: to All
怎么没有人回复我的提问?我可是急等着各位高手的指点的呀,请大家能够抽时间帮帮我,在下多谢了
作者: shiyiming    时间: 2007-6-19 08:08
标题: to All
这么长时间过去了,竟然没有一人肯试试吗?
作者: shiyiming    时间: 2007-7-9 22:28
标题: Re: SAS在临床试验中的应用专集
好久没来了,回来逛逛!




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2