SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 755|回复: 6
打印 上一主题 下一主题

请教调用外部SAS数据库问题?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2005-8-12 09:54:18 | 只看该作者

请教调用外部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     ......
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2005-8-12 18:11:01 | 只看该作者

to meking

*.sd2本身就是SAS6的数据文件,只需要用libname就可以正确读取了。
你用的input是在读取文本文件,所以你用错了。
[code:d969d]libname tmp 'd:\sas';
proc npar1way data=tmp.jyk;
class group;
var p10105;
run; [/code:d969d]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2005-8-13 14:24:47 | 只看该作者

谢谢shiyiming

非常谢谢shiyiming,我试了,有用,但还有一点不明白的是,假如我要改变变量比如p10105=p10105+10,那这个语句是在proc npar1way data=tmp.jyk;之上还是之下,谢谢指点!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2005-8-14 08:00:18 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2005-8-15 10:16:17 | 只看该作者

谢谢!

还有一个问题没有试出来,还请您帮忙,因为一般数据库中包括了所有病例,但我想从中选择一些病例,比如从上面的程序的JYK中选择出符合条件p10105>10的病例作为数据库JYK1,那是用SELECT语句还是用IF语句,他应加在代码的哪个位置?谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2005-8-15 13:59:41 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2005-8-15 17:10:39 | 只看该作者

呵呵,谢谢

读万卷书不如行万里路,行万里路不如高人指点,经您一指点,我就对其机理明白了好多,基础课程已经学了多日,就是在引用外部数据库不会,所以就来这来求教,非常感谢您的指点,现在分析都能做了,就是输出结果的优化以及宏的运用还不明白其机理,遇到问题时再向您请教,希望到时能慷慨解囊,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 06:39 , Processed in 0.073273 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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