楼主: dxystata
8459 5

如何判断数据集没有观测? [推广有奖]

版主

已卖:302份资源

大师

37%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
183395 个
通用积分
15333.1475
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
298627 点
帖子
5586
精华
1
在线时间
13632 小时
注册时间
2006-6-21
最后登录
2025-12-22

初级学术勋章 初级热心勋章 中级热心勋章 初级信用勋章

楼主
dxystata 发表于 2015-1-21 23:34:36 |AI写论文
20论坛币
  1. data aaa;
  2. input x y;
  3. cards;
  4. 1 2
  5. 3 4
  6. ;
  7. run;

  8. data bbb;
  9.         set aaa;
  10.         where x>3;
  11. run;
复制代码



如何在macro中判断bbb数据集没有观测或为空数据集?谢谢!

关键词:数据集 Input cards Macro Where 如何

本帖被以下文库推荐

沙发
sushe1527 发表于 2015-1-21 23:44:43
  1. data aaa;
  2. input x y;
  3. cards;
  4. 1 2
  5. 3 4
  6. ;
  7. run;
  8. data bbb;
  9. set aaa;
  10.         where x>3;
  11. run;

  12. %macro checknobs(dsn);
  13. proc sql noprint;
  14. select nobs into:obscount from dictionary.tables
  15. where trim(libname)||"."||memname="%upcase(&dsn)";
  16. quit;
  17. %if &obscount >0 %then %do;
  18. proc print data=&dsn(obs=10);
  19. title1 "a few observations from &dsn";
  20. run;
  21. %end;
  22. %else %do;
  23. data _null_;
  24. file print notitles;
  25. put "there are no observations in &dsn";
  26. run;
  27. %end;
  28. %mend checknobs;
  29. %checknobs(work.bbb)
复制代码

藤椅
farmman60 发表于 2015-1-22 09:28:55
  1. %macro check_obs(dsn);
  2. %let dsid=%sysfunc(open(&dsn,i));
  3. %let obs=%sysfunc(attrn(&dsid,nlobs));
  4. %if &obs>0 %then %put "&dsn has &obs obs";
  5. %else %put "&dsn has 0 obs";
  6. %let rc=%sysfunc(close(&dsid));
  7. %mend;
  8. %check_obs(bbb)
复制代码
已有 1 人评分经验 收起 理由
李会超 + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

板凳
张冬阳 发表于 2015-1-22 09:52:34
你指的观测是什么的观测?

报纸
tangliang0905 发表于 2015-1-24 01:23:34
    data aaa;
    input x y;
    cards;
    1 2
    3 4
    ;
    run;

    data bbb;
            set aaa;
            where x>3;
    run;

        proc sql noprint;
        select count(*) into: count1 from bbb;
        quit;
%macro count;
%if &count1 = 0 %then %do;
data _null_;
%put 'there is no observation in data set bbb';
run;
%end;
%else %do;
proc print data=bbb;
run;
%end;
%mend;
%count

地板
yebanzhongsheng 发表于 2018-12-21 13:30:46
data _null_;
      if _n_=0 then set bbb nobs=nobs;
     if nobs=0 then put 'bbb dataset has no observation';
     stop;
run;

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 12:33