SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1270|回复: 2
打印 上一主题 下一主题

关于分组条件输出的问题!

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2004-3-13 11:25:26 | 只看该作者

关于分组条件输出的问题!

下面的判断是在每组中直到满足条件时才输出,可执行结果时只输出了第一组中的满足条件的一条记录,请问如何解决?

data s2(keep=code new y m d tturn tag);
set s1;
by tag;
if first.tag then do;
call symput("price",new); p=symget("price");
end;
else do;
code0=code;new0=new;y0=y;m0=m;d0=d;tturn0=tturn;tag0=tag;
code1=lag(code);new1=lag(new);y1=lag(y);
m1=lag(m);d1=lag(d);tturn1=lag(tturn);tag1=lag(tag);
if (new1<=1.0012*p and new1>=0.9988*p)
and new0>1.0012*p or new0<=0.9988*p then do;
code=code0;new=new0;y=y0;m=m0;d=d0;tturn=tturn0;tag=tag0;
output;
end;
end;
run;

再问:若对某数据集进行了分组,在读入记录的过程中,要求读入每组的第一条记录后,不执行后面的某些操作,记录指针下移一条,如何实现?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2004-3-15 22:53:28 | 只看该作者
You did nothing with SYMPUT AND SYMGET, after the first.tag record, p is always missing.  At least, you should RETAIN P.

Check RETURN statement.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2004-3-17 10:57:57 | 只看该作者

Thanks!

yes! i see. i have worked it out!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 15:33 , Processed in 0.143154 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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