全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1461 8
2012-10-16
悬赏 30 个论坛币 已解决
(手机发帖,格式乱,请见谅)

向各位老师请教一个小问题,例如有abc01ef这样的变量二十个(直到abc20ef)

现在我想在data步中描述这么一个问题:如果全部变量都为空,则为真。我想请老师用数组和宏变量的方式分别做一下,感激不尽。

附,和这个相似的问题我解决了:如果全部变量均非空,则为真,我的实现是这样的:

data a;
set a;
if missing(abc01ef + ... + abc20ef) then ;else 判断实现;
run;

谢谢。

最佳答案

davil2000 查看完整内容

data ; retain s 1; d1=.; d2=.; d3=.; d4=.; d5=.; array var{5} d1-d5; do i=1 to 5; s=s * (var{i}=' '); end; put s=; /*if s=1 then do; */ /*...statement...*/ /*end;*/ run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-10-16 15:05:16
data ;
retain s 1;
d1=.;
d2=.;
d3=.;
d4=.;
d5=.;
array var{5} d1-d5;
      do i=1 to 5;
         s=s * (var{i}=' ');
      end;
put s=;
/*if s=1 then do;  */
/*...statement...*/
/*end;*/
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-16 15:54:22
data ex;
input abc01ef abc02ef abc03ef  ;
cards;
1 2 3
1 . 3
. . .
;
run;

/*数组运算*/
data ex1(drop=i j);
set ex;
count=0;
array  aa(*) abc01ef abc02ef abc03ef;
do i=1 to dim(aa);
if missing(aa(i)) then j=0;
else j=1 ;
count+j;
end;
if count=0 then put "true";
else put "false";
run;

/*用宏做个循环没多大意思,用n函数更方便直接*/
data ex1;
set ex;
if n(abc01ef,abc02ef,abc03ef)=0 then put "true";
else put "false";
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-16 15:58:52
复制代码
不求别的,只为论坛币
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-16 16:01:21
ziyenano 发表于 2012-10-16 15:54
data ex;
input abc01ef abc02ef abc03ef  ;
cards;
我靠,你跟我师从的同一个祖师吧?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-10-16 16:07:35
Imasasor 发表于 2012-10-16 16:01
我靠,你跟我师从的同一个祖师吧?
这种问题,着实想不出什么出彩的思路
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群