全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学
2007-7-24 00:17:00
<P>有没有详细的学习红的资料。 </P>
<P>多谢。 </P>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-7 21:55:00
多谢分享!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-19 13:19:00
恩 谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-22 21:21:00
thanks
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-23 08:11:00
thx
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-28 18:33:00
谢谢了,还是好人多
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-30 21:45:00
<P>谢谢楼主分享</P>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-8-30 23:27:00
谢谢楼主~好人呀
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-13 10:26:00
<p>应该奖励!</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-13 13:04:00
共产主义好阿!非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-13 13:20:00
看~~~~~~~~~~~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-11-13 15:52:00
<p>讲宏的好像很少!</p><p>顶</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-5 14:54:00
<p>这样的人很好,支持一下!新手总是不好过日子</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-5 20:29:00
果然是好东西
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-6 16:01:00
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-16 11:34:00
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-17 12:31:00
<p>因为有了楼主这样的好人,世界变得如此和谐</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-12-17 17:22:00
<p>先下,再慢慢看</p><p>谢了</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-1-25 09:39:00
<p>谢谢楼主!</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-1 23:37:00
多谢了!!!很感激!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-2 10:54:00
xiexie <br/>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-3 15:10:00
Thanks!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-16 12:47:00
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-17 18:54:00
路过,支持一下,虽然暂时不学
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-20 22:18:00
<p>薛博士的宏程序确实不错,但尚不能自动生成我们需要的统计表格,以下这段代码是我在薛博士的基础上,经过一个下午的时间编写出来的,运行后可以自动生成标准的统计表格(配合ODS),如果版主认为还行的话,请奖励一些论坛币(我很穷啊),谢谢!</p><p>程序在sas9.0英文版中运行通过。</p><p>%macro comdts(j,k,dataname); <br/>&nbsp; %do i=&amp;j %to &amp;k; <br/>&nbsp; &amp;dataname&amp;i <br/>&nbsp; %end; <br/>&nbsp;%mend comdts; <br/></p><p>%macro comparison(data=,vars=,vg1=,vg2=,vg3=,vg4=,class=,par=1,format=6.1,total=1,where=);<br/>/*扫描宏参数中包含的应变量名称,并将其赋值给一系列宏变量*/<br/>ods select none;<br/>%let i=1;<br/>%do %while(%scan(&amp;vars,&amp;i) ne );%let var&amp;i=%scan(&amp;vars,&amp;i);%let i=%eval(&amp;i+1);%end;<br/>/*获取应变量个数*/<br/>%let vnum=%eval(&amp;i-1);<br/>/*获取指定分组变量的水平数*/<br/>proc freq data=&amp;data;tables &amp;class/out=freout;run;<br/>data _null_;set freout end=last;if last then call symput('lvnum',compress(_n_));<br/>run;<br/>/*分组变量水平数小于2时给出警告信息,并跳出宏运行进程*/<br/>%if &amp;lvnum&lt;2 %then %do;<br/>&nbsp; %put Warning: Level number of class variable is less than 2.;<br/>&nbsp; %goto exitmacro;<br/>%end;</p><p>/*数据描述*/<br/>%do i=1 %to &amp;vnum;<br/>&nbsp;&nbsp;proc means data=&amp;data n nmiss mean std min max lclm uclm median maxdec=2;<br/>&nbsp;&nbsp;&nbsp;output out=tmpmean&amp;i n=n nmiss=nmiss mean=mean std=std min=min max=max lclm=lclm uclm=uclm <br/>&nbsp;&nbsp;&nbsp;median=median;class &amp;class;&nbsp;%if &amp;where ne %then %do;where &amp;where;%end;<br/>&nbsp;&nbsp;&nbsp;var &amp;&amp;var&amp;i;<br/>&nbsp;&nbsp;run;</p><p>&nbsp;&nbsp;data tmpmean&amp;i;set tmpmean&amp;i;<br/>&nbsp;&nbsp;&nbsp;nnmiss=compress(put(n,6.0)||"("||left(put(nmiss,6.0))||")");<br/>&nbsp;&nbsp;&nbsp;ms=put(mean,&amp;format)||"+"||left(put(std,&amp;format));<br/>&nbsp;&nbsp;&nbsp;minax=put(min,&amp;format)||"~"||left(put(max,&amp;format));<br/>&nbsp;&nbsp;&nbsp;luclm=put(lclm,&amp;format)||"~"||left(put(uclm,&amp;format));<br/>&nbsp;&nbsp;&nbsp;med=put(median,&amp;format);<br/>&nbsp;&nbsp;run;</p><p>&nbsp;%if &amp;lvnum=2 %then %do;</p><p>&nbsp;/* t-test */;<br/>&nbsp;&nbsp;%if &amp;par=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;ods output ttests=ttests equality=equality;<br/>&nbsp;&nbsp;&nbsp;proc ttest data=&amp;data;var &amp;&amp;var&amp;i;class &amp;class;<br/>&nbsp;&nbsp;&nbsp;&nbsp;%if &amp;where ne %then %do;where &amp;where;%end;<br/>&nbsp;&nbsp;&nbsp;data test2;merge ttests equality;by variable;<br/>&nbsp;&nbsp;&nbsp;data test21;set test2;where probf&gt;0.05 and variances='Equal';length stat $ 5; stat="";<br/>&nbsp;&nbsp;&nbsp;data test22;set test2;where probf&lt;0.05 and variances='Unequal';length stat $ 5;stat="*";<br/>&nbsp;&nbsp;&nbsp;data test(keep=variable pvalue);merge test21 test22;<br/>&nbsp;&nbsp;&nbsp;length variable $10.;variable="&amp;&amp;var&amp;i.";<br/>&nbsp;&nbsp;&nbsp;&nbsp;pvalue=left(put(probt,6.3))||stat;<br/>&nbsp;&nbsp;&nbsp;run;<br/>&nbsp;&nbsp;%end;<br/>&nbsp;/*秩和检验*/;<br/>&nbsp;&nbsp;%if &amp;par^=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc npar1way wilcoxon data=&amp;data;<br/>&nbsp;&nbsp;&nbsp;%if &amp;where ne %then %do;where &amp;where;%end;<br/>&nbsp;&nbsp;&nbsp;ods output kruskalwallistest=tmp1;var &amp;&amp;var&amp;i;class &amp;class;run;<br/>&nbsp;&nbsp;&nbsp;data test(keep=variable pvalue);set tmp1(rename=nvalue1=p);<br/>&nbsp;&nbsp;&nbsp;where label1='Pr &gt; Chi-Square';methods='**';<br/>&nbsp;&nbsp;&nbsp;pvalue=left(put(p,6.3))||methods;length variable $10.;variable="&amp;&amp;var&amp;i.";run;<br/>&nbsp;&nbsp;%end;<br/>/*描述数据*/;<br/>/*给出两组之合计值*/;<br/>&nbsp;&nbsp;%if &amp;total=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc iml;reset noname linesize=100;<br/>&nbsp;&nbsp;&nbsp;use tmpmean&amp;i;setin tmpmean&amp;i;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg1) into nn1;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg2) into nn2;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=.) into nn;<br/>&nbsp;&nbsp;&nbsp;nn11=nn1`;nn12=nn2`;nnt=nn`;<br/>&nbsp;&nbsp;&nbsp;aaa=nn11||nn12||nnt;bbb={"N(miss)","Mean+SD","Min~Max","95% CI(L~U)","Median"};<br/>&nbsp;&nbsp;&nbsp;ab=bbb||aaa;create mydata&amp;i from ab;append from ab;quit;<br/>&nbsp;&nbsp;%end;<br/>&nbsp;data mydata1&amp;i;merge test mydata&amp;i;run;<br/>&nbsp;data mydata1&amp;i;retain variable col1 col2 col3 col4 pvalue;set mydata1&amp;i;<br/>&nbsp;run;<br/>/*不给出两组之合计值*/;</p><p>&nbsp;&nbsp;%if &amp;total^=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc iml;reset noname linesize=100;<br/>&nbsp;&nbsp;&nbsp;use tmpmean&amp;i;setin tmpmean&amp;i;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg1) into nn1;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg2) into nn2;<br/>&nbsp;&nbsp;&nbsp;nn11=nn1`;nn12=nn2`;<br/>&nbsp;&nbsp;&nbsp;aaa=nn11||nn12;bbb={"N(miss)","Mean+SD","Min~Max","95% CI(L~U)","Median"};<br/>&nbsp;&nbsp;&nbsp;ab=bbb||aaa;create mydata&amp;i from ab;append from ab;quit;<br/>&nbsp;&nbsp;%end;<br/>&nbsp;data mydata1&amp;i;merge test mydata&amp;i;run;<br/>&nbsp;data mydata1&amp;i;retain variable col1 col2 col3 pvalue;set mydata1&amp;i;<br/>&nbsp;run;<br/>&nbsp;%end;</p><p>&nbsp;%if &amp;lvnum&gt;2 %then %do;</p><p>/* ANOVA test */;<br/>&nbsp;&nbsp;%if &amp;par=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc glm data=&amp;data;class &amp;class;model &amp;&amp;var&amp;i=&amp;class;<br/>&nbsp;&nbsp;&nbsp;&nbsp;ods output overallanova=tmpanova diff=tmpf(rename=(_1=t12 _2=t13 _3=t23 p1=p12 p2=p13 p3=p23));<br/>&nbsp;&nbsp;&nbsp;&nbsp;lsmeans &amp;class/tdiff pdiff;%if &amp;where ne %then %do;where &amp;where;%end;<br/>&nbsp;&nbsp;&nbsp;run;</p><p>&nbsp;&nbsp;&nbsp;data t12(keep=pvalue);set tmpf;if _n_=1;rename t13=t1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;p1=left(put(p13,6.3));pvalue=p1||'*';*Group1:group2;<br/>&nbsp;&nbsp;&nbsp;run;<br/>&nbsp;&nbsp;&nbsp;data t13(keep=pvalue);set tmpf;if _n_=1;rename t23=t2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;p2=left(put(p23,6.3));pvalue=p2||'**';*Group1:Group3;<br/>&nbsp;&nbsp;&nbsp;run;<br/>&nbsp;&nbsp;&nbsp;data t23(keep=pvalue);set tmpf;if _n_=2;rename t23=t3;<br/>&nbsp;&nbsp;&nbsp;&nbsp;p3=left(put(p23,6.3));pvalue=p3||'***';*Group2:Group3;<br/>&nbsp;&nbsp;&nbsp;run;<br/>&nbsp;&nbsp;&nbsp;data tmpanova(keep=variable pvalue);set tmpanova;if _n_=1;<br/>&nbsp;&nbsp;&nbsp;length variable $10.;variable="&amp;&amp;var&amp;i.";length pvalue $10.;<br/>&nbsp;&nbsp;&nbsp;&nbsp;pvalue=left(put(probf,6.3));run;<br/>&nbsp;&nbsp;&nbsp;data test;set tmpanova t12 t13 t23;run;<br/>&nbsp;&nbsp;%end;</p><p>/*秩和检验*/;<br/>&nbsp;&nbsp;%if &amp;par^=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc npar1way wilcoxon data=&amp;data;%if &amp;where ne %then %do;where &amp;where;%end;<br/>&nbsp;&nbsp;&nbsp;ods output kruskalwallistest=tmp1;var &amp;&amp;var&amp;i;class &amp;class;run;</p><p>&nbsp;&nbsp;&nbsp;data test(keep=variable pvalue);set tmp1(rename=nvalue1=p);<br/>&nbsp;&nbsp;&nbsp;where label1='Pr &gt; Chi-Square';methods='**';<br/>&nbsp;&nbsp;&nbsp;pvalue=left(put(p,6.3))||methods;length variable $10.;variable="&amp;&amp;var&amp;i.";run;<br/>&nbsp;&nbsp;%end;</p><p>/*描述数据*/;<br/>/*给出三组的合计值*/;<br/>&nbsp;&nbsp;%if &amp;total=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc iml;reset noname linesize=100;<br/>&nbsp;&nbsp;&nbsp;use tmpmean&amp;i;setin tmpmean&amp;i;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg1) into nn1;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg2) into nn2;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg3) into nn3;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=.) into nn;<br/>&nbsp;&nbsp;&nbsp;nn11=nn1`;nn12=nn2`;nn13=nn3`;nnt=nn`;<br/>&nbsp;&nbsp;&nbsp;aaa=nn11||nn12||nn13||nnt;bbb={"N(miss)","Mean+SD","Min~Max","95% CI(L~U)","Median"};<br/>&nbsp;&nbsp;&nbsp;ab=bbb||aaa;create mydata&amp;i from ab;append from ab;quit;<br/>&nbsp;&nbsp;%end;<br/>&nbsp;data mydata1&amp;i;merge test mydata&amp;i;run;<br/>&nbsp;data mydata1&amp;i;retain variable col1 col2 col3 col4 col5 pvalue;set mydata1&amp;i;<br/>&nbsp;run;</p><p>/*不给三组的合计值*/;<br/>&nbsp;&nbsp;%if &amp;total^=1 %then %do;<br/>&nbsp;&nbsp;&nbsp;proc iml;reset noname linesize=100;<br/>&nbsp;&nbsp;&nbsp;use tmpmean&amp;i;setin tmpmean&amp;i;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg1) into nn1;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg2) into nn2;<br/>&nbsp;&nbsp;&nbsp;read all var {nnmiss ms minax luclm med} where(&amp;class=&amp;vg3) into nn3;<br/>&nbsp;&nbsp;&nbsp;nn11=nn1`;nn12=nn2`;nn13=nn3`;<br/>&nbsp;&nbsp;&nbsp;aaa=nn11||nn12||nn13;bbb={"N(miss)","Mean+SD","Min~Max","95% CI(L~U)","Median"};<br/>&nbsp;&nbsp;&nbsp;ab=bbb||aaa;create mydata&amp;i from ab;append from ab;quit;<br/>&nbsp;&nbsp;%end;</p><p>&nbsp;data mydata1&amp;i;merge test mydata&amp;i;run;<br/>&nbsp;data mydata1&amp;i;retain variable col1 col2 col3 col4 pvalue;set mydata1&amp;i;<br/>&nbsp;run;&nbsp;<br/>%end;%end;<br/>data mydata;set %comdts(1,&amp;vnum,mydata1); <br/>ods select all;<br/>proc print data=mydata noobs;run;<br/>%exitmacro:<br/>%mend comparison;<br/>*应用举例:%comparison(data=aaa,vars=height weight age hcy1 sbp1 dbp1 sbp2 dbp2 sbp4 dbp4<br/>,vg1=1,vg2=2,class=sex,par=1,format=6.1,total=1);<br/>*%comparison(data=aaa,vars=age hcy1 hcy4 hcy8 sbp1 dbp1 sbp2 dbp2 weight height,vg1=1,vg2=2,<br/>vg3=3(分组变量的值),class=group,par=1(参数检验),format=6.1,total=1(有合计值));<br/></p><p></p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-23 05:56:00
thanks a lot, good help
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-24 19:09:00
<p>多谢多谢</p><p></p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-25 14:27:00
<div class="quote"><b>以下是引用<i>wanghuimail</i>在2007-2-26 13:44:00的发言:</b><br/>谢谢分享,好东西就要鼓励。</div><p>顶起</p><p></p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-26 11:39:00
<p>我不揣冒昧贴出这段程序,意在抛砖引玉,请collen、student、笑权等众家高手对我的程序进行优化(自觉程序很不精炼,尚有许多待优化的地方),谢谢!</p><p>感谢笑权大侠曾无私的将SAS9.13安装方面的宝贵资料发送给了我。顺便再请教一下,目前的SAS时间破解软件可以顺利解决英文版的问题,但却不能很好的解决中文版的问题,请问哪位大侠愿意为此再做一把努力?谢谢!</p>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-2-26 16:02:00
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群