- 阅读权限
- 18
- 威望
- 0 级
- 论坛币
- 4586 个
- 学术水平
- 0 点
- 热心指数
- 2 点
- 信用等级
- 0 点
- 经验
- 318 点
- 帖子
- 8
- 精华
- 0
- 在线时间
- 60 小时
- 注册时间
- 2017-11-5
- 最后登录
- 2019-2-13
- 答疑数
- 0
高中生
还不是VIP/贵宾
- 威望
- 0 级
- 论坛币
 - 4586 个
- 学术水平
- 0 点
- 热心指数
- 2 点
- 信用等级
- 0 点
- 经验
- 318 点
- 帖子
- 8
- 精华
- 0
- 在线时间
- 60 小时
- 注册时间
- 2017-11-5
- 最后登录
- 2019-2-13
 | 悲催 2018-8-20 15:12:43 |
---|
签到天数: 5 天 连续签到: 1 天 [LV.2]偶尔看看I
|
如题,假设我的work.a数据集中有30多万行数据,我想把其中前1000行中符合var8这个变量等于500的输出到另一work.b数据集中,不使用循环的程序很简单,如下:
data work.b;
set work.a(firstobs=1 obs=1000);
if var8=500 then output;
run;
我想问如果我想使用do循环,若是do放在set前面,会和不加set没区别,它会很快地将30万数据里所有符合条件的20多万数据都输出到b里:
data work.b;
do _n_ = 1 to 1000;
set work.a;
where var8=500;
end;
run;
但若是do放在set后头,它又会将30多万数据循环好多遍,一直出不来结果:
data work.b;
set work.a;
do _n_ = 1 to 1000;
where var8=500;
end;
run;
求助,怎么使用循环实现将a中前1000行符合条件的输出到b中?
|
|
-
总评分: 热心指数 + 2
查看全部评分
|