SAS中文论坛

标题: 请教调用外部SAS数据库问题? [打印本页]

作者: shiyiming    时间: 2005-8-12 09:54
标题: 请教调用外部SAS数据库问题?
这是我编的程序:
data smbs1;
infile 'd:\sas\jyk.sd2';
input p10105 GROUP;

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&#46;jyk1;
set tmp&#46;jyk;
p10105=p10105+10;
if p10105&gt;10;
run;[/code:0d847]
作者: shiyiming    时间: 2005-8-15 17:10
标题: 呵呵,谢谢
读万卷书不如行万里路,行万里路不如高人指点,经您一指点,我就对其机理明白了好多,基础课程已经学了多日,就是在引用外部数据库不会,所以就来这来求教,非常感谢您的指点,现在分析都能做了,就是输出结果的优化以及宏的运用还不明白其机理,遇到问题时再向您请教,希望到时能慷慨解囊,谢谢!




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