美文网首页SAS
SAS判断数据集观测数量

SAS判断数据集观测数量

作者: Break_Down | 来源:发表于2023-07-12 15:24 被阅读0次

    最近计划离职,工作逐渐交接出去。很奇怪,忙的时候满心全是吐槽,到了交接的时候反而很不舍。所以想给自己找点事情做,一方面看看书提高自己的认知,另一方面三言两语写点小知识点分享一下。毕竟自己碰到不会的就会到去各种帖子各种微信群拿来主义~

    因为ODS无法输出空数据集,所以在制作宏程序批处理数据集的时候,要判断为空的数据集,给其增加一行数据:no listing。以保证所有数据集均不为空。本篇主要记录如果判断数据集的观测数,并将其放入宏变量。

    *1.使用DATA步获取信息, call symput() 动作放入宏变量;
    data _null_;
      set SASHELP.CARS nobs=nobs;
      call symput("nobs", nobs);
    run;
    %put &nobs.;
    #output: 428
    **************************************************************;
    *2.没有直接打开数据集的情况下利用open函数获取信息,let语句放入宏变量;
    %let dsid = %sysfunc(open(SASHELP.CARS, i));
    %let n=%sysfunc(attrn(&dsid,nobs));
    %let rc=%sysfunc(close(&dsid));
    %put &n.;
    #output: 428
    **************************************************************;
    *3.使用PROC步,SQL获取信息, into子句放入宏变量;
    PROC SQL noprit;
      select count(*) into :num from SASHELP.CARS;
    quit;
    %put &num .;
    #output: 428
    

    这里顺带提一句,上面其实也用到了制作宏变量常用的三种方法:

    1.%LET 语句;
    2.DATA步中的 call symput();
    3.SQL into子句;
    

    结束收工!其实写这东西还是有点好处的,现在我工作过程中用python越来越多,稍微写下blog也能帮助自己加深记忆。

    相关文章

      网友评论

        本文标题:SAS判断数据集观测数量

        本文链接:https://www.haomeiwen.com/subject/ehrpudtx.html