proc npar1way wilcoxon;
class GROUP;
var p10105;
Run;
结果:
data smbs1;
10 infile 'd:\sas\jyk.sd2';
11 input p10105 GROUP;
12
NOTE: The infile 'd:\sas\jyk.sd2' is:
File Name=d:\sas\jyk.sd2,
RECFM=V,LRECL=256
NOTE: Invalid data for p10105 in line 1 1-3.
NOTE: Invalid data for GROUP in line 1 9-15.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+-
1 CHAR SAS 6.08.00 WIN ........................ JYK ......作者: shiyiming 时间: 2005-8-12 18:11 标题: to meking *.sd2本身就是SAS6的数据文件,只需要用libname就可以正确读取了。
你用的input是在读取文本文件,所以你用错了。
[code:d969d]libname tmp 'd:\sas';
proc npar1way data=tmp.jyk;
class group;
var p10105;
run; [/code:d969d]作者: shiyiming 时间: 2005-8-13 14:24 标题: 谢谢shiyiming 非常谢谢shiyiming,我试了,有用,但还有一点不明白的是,假如我要改变变量比如p10105=p10105+10,那这个语句是在proc npar1way data=tmp.jyk;之上还是之下,谢谢指点!作者: shiyiming 时间: 2005-8-14 08:00 标题: to meking 这是典型的数据处理需求,可以在中间加一个data step。
[code:bc5d8]libname tmp 'd:\sas';
data tmp.jyk1;
set tmp.jyk;
p10105=p10105+10;
run;
proc npar1way data=tmp.jyk1;
class group;
var p10105;
run; [/code:bc5d8]作者: shiyiming 时间: 2005-8-15 10:16 标题: 谢谢! 还有一个问题没有试出来,还请您帮忙,因为一般数据库中包括了所有病例,但我想从中选择一些病例,比如从上面的程序的JYK中选择出符合条件p10105>10的病例作为数据库JYK1,那是用SELECT语句还是用IF语句,他应加在代码的哪个位置?谢谢!作者: shiyiming 时间: 2005-8-15 13:59 标题: to meking 你需要的是静下心来看看SAS基础教程,网上有的自己搜一下。你的问题基础教程都能解答你。祝进步神速! <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->
[code:0d847]data tmp.jyk1;
set tmp.jyk;
p10105=p10105+10;
if p10105>10;
run;[/code:0d847]作者: shiyiming 时间: 2005-8-15 17:10 标题: 呵呵,谢谢 读万卷书不如行万里路,行万里路不如高人指点,经您一指点,我就对其机理明白了好多,基础课程已经学了多日,就是在引用外部数据库不会,所以就来这来求教,非常感谢您的指点,现在分析都能做了,就是输出结果的优化以及宏的运用还不明白其机理,遇到问题时再向您请教,希望到时能慷慨解囊,谢谢!