SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: shiyiming
打印 上一主题 下一主题

临床试验的SAS统计报表问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2006-9-22 12:03:42 | 只看该作者

回复wmqy2004

感谢wmqy2004的回复,期待您早日将此宏程序研究成功。我还没有看到非文本格式输出的报道,排版虽然麻烦点,但起码能减少数据出差错的几率,目前也只能这样,我真诚希望您在这方面的突破,给大家做出的巨大贡献,大家是不会忘记的,在下先谢谢您了。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2007-5-9 16:34:44 | 只看该作者

小的尝试

本人尝试用ods+dde,先输出到excel,然后再用dde将excel的数据输出到word。这样就可以得到统计表格。
只是中间过程有点麻烦。
有没有更好的方法,能在word文档直接进行表格的绘制?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
13#
 楼主| 发表于 2007-5-18 15:00:34 | 只看该作者

真正找到我所需要的资料了,

以后多支持工作,先谢谢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
14#
 楼主| 发表于 2007-6-10 20:52:57 | 只看该作者

to All

怎么这么长时间过去了,都没有人给予回复?难道是我的这个问题太简单了以致于众家高手不屑一顾吗?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
15#
 楼主| 发表于 2007-6-10 21:24:16 | 只看该作者

to fxf258

谢谢fxf258的鼓励,经过一段时间的摸索,可以得出表格形式的结果,但仍有不尽如人意的地方(不能生成多个变量在一起的大表格),现将程序列出,诚心向各位高手请教,以便共同提高。

[code:2b1dd]%macro clianova(data,group=,var=,prnopt=0,where=);
%if &prnopt=0 %then %do;ods select none;%end;
options nodate nonumber;title '';
proc means n mean std median min max lclm uclm nmiss noprint data=&data;var &var;class &group;
%if &where ne %then %do; where &where; %end;
output out=tmp1 n=n mean=mean median=median std=std min=min max=max nmiss=nmiss q1=q1 q3=q3;
run;

proc glm data=&data;class &group;model &var=&group;
ods output diff=tmpf;
lsmeans &group/tdiff pdiff;run;
data t12(keep=t12 p12);set tmpf;if _n_=1;rename _2=t12 p2=p12;run;
data t13(keep=t13 p13);set tmpf;if _n_=1;rename _3=t13 p3=p13;run;
data t23(keep=t23 p23);set tmpf;if _n_=2;rename _3=t23 p3=p23;run;
data t12;set t12 t12 t12 t12 t12;run;
data t13;set t13 t13 t13 t13 t13;run;
data t23;set t23 t23 t23 t23 t23;run;
data tmp;merge t12 t13 t23;format t12 t13 t23 6.2 p12 p13 p23 6.3;run;

data tmp2;set tmp1;
nnm=put(n,6.) ||'('||trim(left(put(nmiss,6.)))||')';
ms=put(mean,6.1) ||'±'||left(put(std,6.1));
lu=put(lclm,6.1) ||'~'||left(put(uclm,6.1));
mm=put(min,6.1) ||'~'||left(put(max,6.1));
format median 6.1;
label nnm='N(Miss)' ms='Mean±SD' lu='95%CI(L~U)' mm='Min~Max' median='Median';
drop mean std min max n nmiss lclm uclm;run;
proc anova data=&data;ods output modelANOVA=anova(rename=(fvalue=F probf=P));class &group;model &var=&group;
%if &where ne %then %do; where &where; %end;run;
proc transpose data=tmp2 out=tmp3;var nnm ms q13 mm median;run;
data tmp3(drop=_name_ col1 F t12 p12 t13 p13 t23 p23);merge tmp3 anova(keep=F P) tmp;
format f 6.2 p 6.3;rename _label_=&var col2=A col3=B col4=C;
if _n_=2 then do;F=t12;P=p12;end;if _n_=3 then do;F=t13;P=p13;end;
if _n_=4 then do;F=t23;P=p23;end;run;
ods select all;ods listing;proc print data=tmp3 noobs;run;
%mend clianova;

ods listing close;ods rtf file='d:\tmp\tmp.rtf' style=sasdocprinter startpage=no;
%clianova(data=tmp,var=age,group=group,where=sex=1);
ods rtf close;ods listing;[/code:2b1dd]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
16#
 楼主| 发表于 2007-7-31 15:43:18 | 只看该作者

to wmqy2004

您的努力,已经取得了不少的成绩,谢谢您!好久没上论坛了,看到您的回帖很高兴。
我根据您的程序运行,但报告有错误,您调试运行良好吗?得到满意的表格了吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 07:10 , Processed in 0.078112 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表