SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 759|回复: 5
打印 上一主题 下一主题

请看看这段程序有何错误?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2006-1-19 23:52:33 | 只看该作者

请看看这段程序有何错误?

我是按照SAS BASE使用手册上写的,可在我的SAS8上得到的结果却是Max里面一个观测都没有!why?

data raw;
input con;
cards;
0
0
1
2
3
2
1
0
0
;
run;

data max;
do obsnum= 1 to 8 by 2;
set raw point=obsnum;
if _error_ then abort;
end;
stop;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2006-1-20 10:57:10 | 只看该作者

to maurice

程序没有错误,Max里没有记录是因为第二个data步里没有output语句。
我不知道你想干什么,猜想你是想求第一个数据集里con的最大值。所以我改了代码,你看看是你想要得吗?
[code:f41f4]data max(keep=max_con);
set raw nobs=nobs;
do obsnum=1 to nobs;
set raw point=obsnum;
if con>max then max=con;
if _error_ then abort;
end;
max_con=max;
output;
stop;
run;[/code:f41f4]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2006-1-22 14:03:31 | 只看该作者

谢谢管理员

谢谢管理员!

我正是此意,被君一眼看破!

不过我对你的程序还有点不明白。
set raw nobs=nobs;是什么意思?
  书上说:nobs= 是产生一个临时变量存储数据集中的观测数量。那么有一点我没弄明白,比如nobs=x,究竟是将x的值赋给nobs,还是将nobs的值赋给x?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2006-1-23 14:43:05 | 只看该作者

to maurice

<!-- l --><a class="postlink-local" href="http://www.mysas.net/forum/viewtopic.php?t=1543">viewtopic.php?t=1543</a><!-- l -->

好好利用一下论坛搜索功能吧,呵呵呵。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2006-1-25 19:26:50 | 只看该作者

哦,谢谢提醒

谢谢提醒!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2006-2-5 17:01:50 | 只看该作者

再讨论一下DATA步中的数据读取

我学习shiyiming管理员的一个帖子:

<!-- l --><a class="postlink-local" href="http://www.mysas.net/forum/viewtopic.php?t=1543">viewtopic.php?t=1543</a><!-- l -->

[quote=&quot;shiyiming&quot;:cbad5]nobs=nobs中前一个nobs是系统变量,用于取得数据集描述中该数据集的总记录数。而后一个nobs只是普通变量,是将纪录总数赋给它,供以后程序使用。写颠倒了?没有!!!很奇怪的赋值方法,这就是SAS <!-- s8) --><img src="{SMILIES_PATH}/icon_cool.gif" alt="8)" title="Cool" /><!-- s8) -->

你可以改成nobs=temp试一试,在以后的程序中调用temp变量,效果一样。[/quote:cbad5]


自己试了一下,觉得挺神奇的!如果我把nobs=nobs换成了nobs=temp效果是一样的,但是我在数据集却找不到temp这个变量。按说temp是个一般变量,应该在数据集中出现啊。能解释一下吗?

另外,我没有在sas9的document中查到_cnt_,请烦劳解释一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 14:10 , Processed in 0.077280 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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