SAS data步循环机制--set 于循环语句中

理解SET 循环机制 --对应123 题 -base Q87 :

  • set 为隐式循环,整个data 步读取set 数据集,直到set 数据集读取完毕后 data 步自动停止执行,读至run 语句后清空pdv(retain 除外),data 步中,没有output 输出时,于run 语句时执行output 到默认数据集当中。
  • set 在每个data步/do 循环中,读取一条数据(每次循环数据指针下移至下个观测),也就是说,一条set 的执行对应且仅对应一条观测,且观测唯一。

原题:(set 至于do 循环中)

The SAS data set BANKS is listed below:
BANKS
name rate
FirstCapital0.0718
DirectBank0.0721
VirtualDirect0.0728
The following SAS program is submitted:
data newbank;
do year = 1 to 3;
set banks;
capital + 5000;
end;
run;

  • 其输出仅有一条obs , 对应四个variable :
    year name rate capital
    4 VirtualDirect 0.0728 15000
    程序在第三条obs读取完结束。Do 语句中 默认结束year =year+1,year=4 ; "+" 默认在data(implicit loop) 和Do中(explicit loop中)保持pdv中的值。

考虑以下变形:

test_db.test1.png

data aa;
do year = 1 to 3;
set test_db.test1;
capital + 5000;
put @5"inloop:" _all_;
end;
put @1"data: outloop"_all_;
run;

  • 结果如下(使用Put 输出到日志)


    log.png
  • 数据集:


    dataset aa.png

    其中只有第 3, 6 条obs 顺利输出!,year =4 !

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,504评论 0 10
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 10,150评论 0 23
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,828评论 0 11
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,554评论 0 13
  • 关键词:选择、观望、不满足 牌面解读: 圣杯四场景是一个人座在树下休息乘凉,闭上眼睛并没有什么事情好做,或许是在发...
    玄问心阅读 2,823评论 0 2