SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

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

[求助]数据查找输出问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-10-23 12:12:16 | 只看该作者

[求助]数据查找输出问题

我有这样一个dataset:
Name  Maturity Upfront Bid
[code:w6vnonlo]data aa;
   input name$ maturity upfront bid;
   datalines;
A 3 10 500
A 3 20 500
A 3  . 980
A 5  .  300
A 5 . 350
A 5 . 360
B 3 23 500
B 3 21 500
B 5 25 500
B 5 . 500
;
[/code:w6vnonlo]

这里同一个name同一个maturity的为同一个产品。同一个产品中有的含upfront,有的不含。我想从中找出同一个产品中既有upfront也含无upfront的,即上面数据要输出成:
Name  Maturity Upfront Bid
A           3             10     500
A           3             20     500
A           3               .       980
B           5              25     500
B           5                .      950

数据量很大,几十万个,请问用SAS怎样完成这样一个查找输出的工作?

初学者,请牛人们帮助,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-10-23 13:17:00 | 只看该作者

Re: [求助]数据查找输出问题

[code:2gy2dxzb]proc sort data=aa out=temp;
        by name maturity;
run;

data temp(drop=flag:);
        do _n_=1 by 1 until(last.maturity);
                set temp;
                by name maturity;
                if upfront=. then flag1=1;
                else flag2=1;
        end;
        if flag1 and flag2 then flag=1;
        do _n_=1 to _n_;
                set temp;
                by name maturity;
                if flag=1 then output;
        end;
run;[/code:2gy2dxzb]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-10-23 14:02:40 | 只看该作者

Re: [求助]数据查找输出问题

谢谢啊,it works,不过我对于中间的过程不太理解。

第一个循环是指无upfront的时候flag1=1 flag2=., 而有upfront的时候flag2=1 flag1=.  是这样吗?那什么时候能flag1 and flag2啊?第二个循环要怎么作用?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-6 04:33 , Processed in 0.066795 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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